R:合并感兴趣的列表

发布于 2024-11-16 09:15:52 字数 850 浏览 2 评论 0原文

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

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

谢谢!

I have a list like df_all (see below).

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  

Now I want to combine the list of interest by using variable a.

a <- "2,3,4"
b <- strsplit(a, ",")[[1]]

To combine this lists, I use the folling loop:

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

Now my question is, How can I combine this result and save this as as variable?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没企图 2024-11-23 09:15:52

这对您有用吗:

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。

Would this work for you:

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

Through df_all[basnum], a list with only the relevant data.frames is created.

do.call takes a function and a list as parameters (and some more but not relevant right now). The items of the list are then passed on as parameters to the function.

So in this case, the above is the equivalent to calling:

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

And this produces one data.frame holding all the rows of interest.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文