R:结合感兴趣的列表

时间:2011-06-17 07:25:05

标签: list r dataframe

我有一个像df_all这样的列表(见下文)。

A = matrix( ceiling(10*runif(8)), nrow=4)
colnames(A) = c("country", "year_var")   
dfa = data.frame(A)                      

df1 = dfa[1,]                                                                
df2 = dfa[2,]                                                                
df3 = dfa[3,]                                                                
df4 = dfa[4,]                                                                
df_all = list(df1, df2, df3, df4)                                            
df_all  

现在我想通过使用变量a。

来组合感兴趣的列表
a <- "2,3,4"
b <- strsplit(a, ",")[[1]]

要合并此列表,我使用了循环循环:

for (i in 1:length(b)){
c<-b[i]
aa <- df_all[c:c]
print(aa)
}

现在我的问题是,如何将此结果合并并将其保存为变量?

谢谢!

1 个答案:

答案 0 :(得分:3)

这对你有用吗?

basnum<-as.integer(b)
do.call(rbind, df_all[basnum])

通过df_all[basnum],创建仅包含相关data.frames的列表。

do.call将一个函数和一个列表作为参数(现在更多但不相关)。然后将列表中的项目作为参数传递给函数。

所以在这种情况下,上面的内容相当于调用:

rbind(df_all[[2]], df_all[[3]], df_all[[4]])

这会生成一个包含所有感兴趣行的data.frame。