Я не совсем уверен, что это то, что вы пытаетесь сделать, но cbind()
в этом случае работает нормально.
X <- cbind(X1, X2)
X <- X[, !duplicated(colnames(X))]
Затем вы можете объединить атрибуты из X1 и X2. Чтобы не получать дубликаты, вы можете получить информацию о назначении только из X2, которой еще нет в X1:
attributes(X)$assign <- c(attr(X1,"assign"), attr(X2,"assign")[!attr(X2,"assign") %in% attr(X1,"assign")])
Если это не то, что вы пытались сообщить нам.