我已经阅读了一个数据集列表并将其命名为 n。我想做的是从n中获取数据集的一个子集,然后在R中将它们绑定在一起。当我尝试这样做时,rbind(n)
这只是给了我所有数据集名称的数据框,而不是实际放置元素每个数据集在彼此之下。我想要做的是绑定共享一个通用名称的数据集的子集。例如,18 个数据集以“4”开头。我想把所有这些结合在一起。是否有捷径可寻?
问问题
5195 次
2 回答
11
想要你想做的rbind(n[[1]],n[[2]],...)
是不一样的rbind(n)
。
你不需要把它写出来,你可以do.call
用来创建和执行它call
do.call(rbind, n)
这将运行您想要的命令。然而,这是出了名的慢
您可以使用rbindlist
包data.table
中的内容更快地执行相同的操作
library(data.table)
rbindlist(n)
如果您只想要那些名称以4
rbindlist(n[grep(names(n), pattern = '^4')])
于 2013-02-25T02:45:24.010 回答
1
如果您尝试聚合许多文件,您可能需要rbind.fill
plyr 包中的函数(如果有 data.table 等效项,我不知道)
ll <- list(a=data.frame(x=1,y=2,z=1),
b= data.frame(x=2,y=3),
c=data.frame(x=3:4,y=5))
library(plyr)
Reduce(rbind.fill,ll[c('a','b')]) ## subset by list names and
## apply recursively using Reduce
x y z
1 1 2 1
2 2 3 NA
于 2013-02-25T03:31:42.790 回答