【发布时间】:2015-11-18 11:43:00
【问题描述】:
我正在尝试合并一个不相等的 data.frames 列表;显而易见的do.call(rbind, df.lst) 失败了,但真正的问题是用NAs 填充它。
df.lst <- list(A=data.frame(a=c(1,2),b=c(5,4),d=c(2,3),e=c(1,1),f=c(1,2),g=c(1,2)),
B=data.frame(a=c(1,2),b=c(3,2),d=c(2,3)),
C=data.frame(a=c(1,2),b=c(4,3),d=c(1,2),e=c(1,3))
)
我可以看到我需要在最长的data.frame中找到最大的列数;我可以用下面的代码做到这一点,
max(sapply(df.lst,ncol))
但在那之后我被困住了。建议可以对列表进行索引,这会自动用NAs 填充它。
一旦我有了填充列表,我预计会有一个简单的do.call(),如前所述。 (我试图保留对基础 R 的答案,虽然有很多类似的问题,但我似乎无法找到这个精确问题的答案。
【问题讨论】:
-
从
dplyr尝试library(data.table); rbindlist(df.lst, fill=TRUE)或bind_rows(df.lst)
标签: r