将列表中存储的数据帧合并到R中的单个数据帧中

时间:2017-04-28 07:50:10

标签: r list dataframe merge

我从列表l1开始,我想将其转换为output。因此,l1中的数据框需要通过其第一列(A)合并。

df1 <- read.table(text="
              A B
              1 3
              2 4 ", header=T)
df2 <- read.table(text="
              A C
              1 8
              3 9 ", header=T)

l1 <- list(df1, df2); l1

output <- read.table(text="
              A B C
              1 3  8
              2 4  NA
              3 NA 9 ", header=T); output

2 个答案:

答案 0 :(得分:3)

library(purrr)
reduce(l1, merge, by = "A", all = TRUE)

如果列表中有两个以上的数据框,也可以使用。

答案 1 :(得分:0)

对于baseR选项,请尝试在外部联接模式下使用merge()

output <- merge(df1, df2, by = "A", all = TRUE)