R 在两个单独的列表中连接数据帧
我有两个列表,每个列表包含6个数据帧R 在两个单独的列表中连接数据帧,r,list,dataframe,inner-join,R,List,Dataframe,Inner Join,我有两个列表,每个列表包含6个数据帧 listofdf_1 <- list(a, b, c, d, e, f) listofdf_2 <- list(a2, b2, c2, d2, e2, f2) 现在我一个接一个地加入:merge\u on\u id(listofdf\u 1[[1]],listofdf\u 2[[1]],by=“ID1”)等等 我想知道是否有一种方法可以在一行中连接所有六个元素,而不必对列表中的每个元素重复。如果我们需要内部连接列表的相应元素,我们可以使用映射
listofdf_1 <- list(a, b, c, d, e, f)
listofdf_2 <- list(a2, b2, c2, d2, e2, f2)
现在我一个接一个地加入:merge\u on\u id(listofdf\u 1[[1]],listofdf\u 2[[1]],by=“ID1”)
等等
我想知道是否有一种方法可以在一行中连接所有六个元素,而不必对列表中的每个元素重复。如果我们需要
内部连接列表的相应元素
,我们可以使用映射
Map(inner_join, listofdf_1, listofdf_2, MoreArgs=list(by='ID1'))
数据
listofdf\u 1谢谢!地图中的内部连接,是来自dplyr还是base?@vagabond这是一个base R选项,但是我们可以使用dplyr
,可能需要几个步骤(我以为你想要一个单步答案)。@vagabond这取决于步骤的数量。此外,您还可以使用system.time
或microbenchmark
检查速度。
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))