R dplyr-循环数据帧列表%>;%左连接%>;%多数据帧

R dplyr-循环数据帧列表%>;%左连接%>;%多数据帧,r,loops,dataframe,dplyr,left-join,R,Loops,Dataframe,Dplyr,Left Join,我需要合并几个不同的数据帧 一方面,我有几个带有元数据A的数据帧,另一方面,还有各自的信息B A. [1] "LOJun_Meta" "LOMay_Meta" "VOJul_Meta" "VOJun_Meta" "VOMay_Meta" "ZOJun_Meta" [7] "ZOMay_Meta" B. [1] "LOJun_All." "LOMay_all." "VOJul_All." "VOJun_all." "VOMay_all." "ZOJun_all." [7] "ZOMay_all.

我需要合并几个不同的数据帧

一方面,我有几个带有元数据
A
的数据帧,另一方面,还有各自的信息
B

A.
[1] "LOJun_Meta" "LOMay_Meta" "VOJul_Meta" "VOJun_Meta" "VOMay_Meta" "ZOJun_Meta"
[7] "ZOMay_Meta"

B.
[1] "LOJun_All." "LOMay_all." "VOJul_All." "VOJun_all." "VOMay_all." "ZOJun_all."
[7] "ZOMay_all."
数据帧的名称已经采用列表格式(即
list1
list2
),并且数据帧已经以R格式导入

我的目标是创建一个循环,该循环将合并
dplyr>left join
各个数据帧。例如:

LOJun_Meta + LOJun_All; LoMay_Meta + LOJun_all etc...
我很难做到的是创建一个“同步”合并过程的循环

我不确定是否应该创建一个具有两个输入的函数,并执行这种“合并”

大概是

merging(list1, list2){
  for i in length(list):
    left_join(list1[i], list[2], by = c("PrimaryKey" = "ForeignKey"))
}
我认为问题在于函数应该引用的数据帧不是
list1和list2
值,而是存储在
list1和list2
中的数据帧名称

有什么想法吗

非常感谢!干杯

下面是我打算实现的目标的示意图:

[循环图-dplyr/多个数据帧

我热衷于实现自动化的一个例子是:
ZOMay以下是一个示例,说明如何为您的情况构建一个可复制的示例:

library(tidyverse)
df1a <- data_frame(id = 1:3, var1 = LETTERS[1:3])
df2a <- data_frame(id = 1:3, var1 = LETTERS[4:6])
df1b <- data_frame(id = 1:3, var2 = LETTERS[7:9])
df2b <- data_frame(id = 1:3, var2 = LETTERS[10:12])

list1 <- list(df1a, df2a)
list2 <- list(df1b, df2b)

我强烈建议你阅读如何提供数据帧。你会发现,从这种结构的问题中,你会得到更多的帮助!我渴望有一个更精确/客观的问题。你可以创建一个数据帧列表,或两个基本和连接列表,按正确的连接顺序进行连接,并像你一样进行for循环a谢谢,Alex。也许,从我之前的帖子中还不完全清楚的是,这两个列表只是每个数据帧的名称列表。当我尝试传递:map2(list1,list2,leftjoin(by=c(“主键”,“外键”)。R将输出以下错误:error in UseMethod(“left_join”):没有适用于“left_join”类的对象的“left_join”方法。再次感谢。这就是为什么您需要制作一个最小的、可复制的示例。您的问题中需要有重新创建相关对象的代码,否则这只是猜测
map2(list1, list2, left_join)
# [[1]]
# # A tibble: 3 x 3
#        id var1  var2 
#     <int> <chr> <chr>
#   1     1 A     G    
#   2     2 B     H    
#   3     3 C     I    
# 
# [[2]]
# # A tibble: 3 x 3
#        id var1  var2 
#     <int> <chr> <chr>
#   1     1 D     J    
#   2     2 E     K    
#   3     3 F     L