如何从数据框列表中添加一个数据框?

问题描述 投票:0回答:1

我有一个数据框的列表,我想把列放在一起.为了说明这一点,这里有一个虚拟集。

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()函数。

谢谢你!我有一个数据框的列表。

r list dataframe merge cbind
1个回答
2
投票

我们可以用 reducefull_join

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

如果有很多 list,把它们全部放在一个 list绕过 list 再用 reduce

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

放置 list 在...中 list 可以通过 mget

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

在这里,我们假设 list作为 list1, list2、等。

© www.soinside.com 2019 - 2024. All rights reserved.