Предположим, у меня есть два фрейма данных, каждый из которых имеет разное количество строк и столбцов и разделяет некоторые имена строк, но не другие.Я хотел бы иметь возможность связать их вместе, чтобы результирующий фрейм данных имел все уникальные имена строк из составляющих фреймов данных, и просто помещал 'NA', где комбинация строк и столбцов не существовала в составляющих данных,Я думал, что должна быть какая-то операция объединения или слияния, которая может сделать это, но мне не удалось найти такую.Заранее спасибо!
Редактировать: Вот то, что я написал, и, кажется, работает, но я не уверен, насколько оно надежно:
new.cbind <- function(...)
{
input <- eval(substitute(list(...), env = parent.frame()))
names.orig <- NULL
nrows <- numeric()
for (i in 1:length(input))
{
nrows[i] <- nrow(input[[i]])
names.orig <- c(names.orig, colnames(input[[i]]))
}
idx <- (1:length(input))[order(nrows, decreasing=T)]
x <- NULL
for (i in 1:length(input))
{
x <- c(x, rownames(input[[idx[i]]]))
}
r <- data.frame(row.names=unique(x))
for (i in 1:length(input))
{
r <- cbind(r, data.frame(input[[i]][match(rownames(r), rownames(input[[i]])),]))
}
colnames(r) <- names.orig
return(r)
}