我已经读入了一组数据集并将其称为n。我想做的是从n中取一个数据集子集,并在R中将它们行链接在一起。当我尝试执行rbind(n)时,这只给我所有数据集名称的数据框,而不是实际将每个数据集的元素放在彼此下面。我想做的是绑定共享相同名称的数据集子集。例如,有18个数据集以“4.”开头,我想将它们全部绑定在一起。有没有简单的方法来做到这一点?
rbind(n[[1]],n[[2]],...)
,这与rbind(n)
不同。do.call
创建并执行此call
,而无需编写它。 do.call(rbind, n)
这将运行您想要的命令。然而,这是众所周知的很慢。
您可以使用data.table
包中的rbindlist
来更快地完成相同的操作。
library(data.table)
rbindlist(n)
如果你只想要那些名称以 4
开头的元素
rbindlist(n[grep(names(n), pattern = '^4')])
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
n [filtred.names]
。 - agstudy未优化
的方法在这里。这个方法不会像rbindlist那样快。 - mnel