我有一个像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)
}
现在我的问题是,如何将此结果合并并将其保存为变量?
谢谢!
答案 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。