在两个单独的列表 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))
我有 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))