在两个单独的列表 R 中加入数据帧

join data frames in two separate lists R

我有 2 个列表,每个列表有 6 个数据框。

listofdf_1 <- list(a, b, c, d, e, f)
listofdf_2 <- list(a2, b2, c2, d2, e2, f2)

我想 inner_join 数据帧 a 与 a2,b 与 b2,c 与 c2 等。 连接列是:ID1

我写了一个函数:

merge_on_id <- function(x, y, join_field) {
  require(dplyr)
  inner_join(x, y, by = join_field)
} 

现在我一一加入:merge_on_id(listofdf_1[[1]], listofdf_2[[1]], by = "ID1")等等

我想知道是否有办法在一行中连接所有六个元素,而不必为列表的每个元素重复。

如果我们需要inner_join对应lists的元素,可以使用Map.

 Map(inner_join, listofdf_1, listofdf_2, MoreArgs=list(by='ID1'))

数据

listofdf_1 <- list(a= data.frame(ID1= LETTERS[1:3], Value= 1:3, stringsAsFactors=FALSE),
          b = data.frame(ID1= LETTERS[4:7], V1= 4:7, stringsAsFactors=FALSE))

listofdf_2 <- list(a2= data.frame(ID1= LETTERS[1:5], Value= 6:10, stringsAsFactors=FALSE), 
      b2 = data.frame(ID1= LETTERS[4:9], V1= 4:9, stringsAsFactors=FALSE))