如何合并包含在列表中的不同大小的数据框的元素[R]?

3
我有一个由5个不同大小的数据框组成的列表,每个数据框都有两个变量Group.1x,我希望通过Group.1变量来合并这些数据框。当然,我预计会生成NA值。
例子:
Group.1 = c(01, 03, 05) 
x = c(2000, 4000, 5000) 
a <- data.frame(Group.1, x)

Group.1 = c(03, 05) 
x = c(400, 500) 
b <- data.frame(Group.1, x)

Group.1 = c(01, 05) 
x = c(2000,2500) 
c <- data.frame(Group.1, x)

lst <- list(a,b,c)

variables <- as.numeric(c(1:3))
test2 <- lapply(variables, function(t) merge((data.frame(lst[t])), by="Group.1"))

一个额外的提示:我想使用apply(或lapply)来测试不同的列表大小。
非常感谢!
1个回答

3

Reduce() 可以很好地与列表的 merge() 结合使用。

Reduce(function(...) merge(..., by = "Group.1", all = TRUE), lst)
#   Group.1  x.x x.y    x
# 1       1 2000  NA 2000
# 2       3 4000 400   NA
# 3       5 5000 500 2500

1
谢谢Richard,你让我的星期五更愉快,尤其是更短...;-) - Gion Mors

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接