Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在两个单独的列表中连接数据帧_R_List_Dataframe_Inner Join - Fatal编程技术网

R 在两个单独的列表中连接数据帧

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”)等等 我想知道是否有一种方法可以在一行中连接所有六个元素,而不必对列表中的每个元素重复。如果我们需要内部连接列表的相应元素,我们可以使用映射

我有两个列表,每个列表包含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”)
等等


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

如果我们需要
内部连接
列表的相应元素
,我们可以使用
映射

 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))