【问题标题】:R: combine lists of interestR:合并感兴趣的列表
【发布时间】:2011-06-17 07:25:05
【问题描述】:

我有一个类似 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)
}

现在我的问题是,我怎样才能结合这个结果并将其保存为变量?

谢谢!

【问题讨论】:

    标签: list r dataframe


    【解决方案1】:

    这对你有用吗:

    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。

    【讨论】:

    • 感谢您的解决方案。第一个解决方案对我非常有用。 =)
    猜你喜欢
    • 2011-08-10
    • 2012-07-13
    • 2022-01-13
    • 1970-01-01
    • 2012-02-22
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多