繁体   English   中英

r中根据元素名称组合列表元素(包含data.frames)

[英]Combine list elements (containing data.frames) based on element names in r

假设我有一个包含 26 个元素的列表,每个元素都被命名并包含一个 data.frame。

lst <- lapply(1:26, function(x) data.frame(AA = 1:5, BB = 1:5, CC = 1:5))
names(lst) <- letters

如何仅将此列表中的 select(指定)元素组合成新的组合 object(在本例中为 data.frame)?

  • 例如:假设我只想将名为“m”和“o”的元素合并到一个 data.frame 中。

     AA BB CC m 1 1 1 m 2 2 2 m 3 3 3 m 4 4 4 m 5 5 5 o 1 1 1 o 2 2 2 o 3 3 3 o 4 4 4 o 5 5 5

我知道有一种简单的方法可以使用rbindapply函数之一或do.call或类似函数来执行此操作,但是我的各种努力组合都失败了,而且我能够找到的类似帖子也没有帮助。

我们可以按命名对list进行子集化,并将rbinddo.call一起使用

do.call(rbind, lst[c("m", "o")])

使用do.call的基本 R 方法:

do.call(rbind, args = lst[names(lst) %in% c("m","o")])

虽然,它创建了一些混乱的编号行名称:

    AA BB CC
m.1  1  1  1
m.2  2  2  2
m.3  3  3  3
m.4  4  4  4
m.5  5  5  5
o.1  1  1  1
o.2  2  2  2
o.3  3  3  3
o.4  4  4  4
o.5  5  5  5

这可以在第二步中使用row.names进行清理

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM