r - 如何从数据帧列表中添加单个数据帧

标签 r list dataframe merge cbind

我有一个数据框列表,我想将它们放在一起。 为了说明这一点,这里有一个虚拟集:

Data1 <- data.frame(A = c(1, 2, 3, 4, 5),
                    B = c(2, 3, 5, 3, 10))
Data2 <- data.frame(A = c(1, 2, 3, 4, 6), 
                    C = c(3, 4, 8, 12, 2))
Data3 <- data.frame(A = c(1, 2, 3, 4, 6), 
                    D = c(4, 3, 1, 9, 2))
list <- list(Data1, Data2, Data3)

我希望输出如下所示:

A  B  C  D
1  2  3  4
2  3  4  3
3  5  8  1
4  3 12  9
5 10 NA NA
6 NA  2  2

我的真实数据列表中有很多数据帧,而且我有很多列表,所以我希望代码不必显式声明数据帧的名称,这是我一直在做的使用 merge() 函数。

谢谢!

最佳答案

我们可以将reducefull_join结合使用

library(dplyr)
library(purrr)
reduce(list, full_join, by = 'A')

如果有很多列表,请将它们全部放在列表中,循环遍历列表,然后使用reduce

map(list(list1, list2, list3, ..., listn), ~ reduce(.x, full_join, by = 'A'))

可以使用mget自动将list放入list

map(mget(ls(pattern = '^list\\d+$')), ~ reduce(.x, full_join, by = 'A'))

这里,我们假设列表的名称为list1list2等。

关于r - 如何从数据帧列表中添加单个数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62053485/

相关文章:

R函数根据重复时间组合行

list - 我的递归列表构造有什么问题?

Java Jsoup 打印 For 循环

R:简化代码以将字母等级转换为数字等级

r - 在 Shiny 应用程序启动时更改 RStudio 窗口的大小

r - 面板数据 R 中的多重共线性检验

c# - 编辑 List<Tuple> 项

python - 如何删除python中单元格中包含 'Unnamed'的行?

python - 错误: 'str' object has no attribute 'shape' while trying to covert datetime in a dataframe

python - 如何根据其中一列的子字符串合并 Pandas 数据框?