假設我有兩個數據幀,每個數據幀具有不同數量的行和列,並共享一些行名稱但不共享其他行。我希望能夠將它們混合在一起,以便所得到的數據幀具有來自組成數據幀的所有獨特的rownames,並且簡單地在組成數據中存在行和列組合不存在的'NA' 。我認爲必須有某種加入或合併操作可以做到這一點,但我沒有找到一個成功的。提前致謝!用不同的rownames和行數綁定兩個數據幀
編輯:這是我寫的,它似乎工作,但我不知道它是如何強大的是:
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)
}
不要在行名稱中存儲數據。使用合併。 – hadley