R如何解释连接?从左到右或从右到左

R如何解释连接?从左到右或从右到左,r,join,left-join,right-join,R,Join,Left Join,Right Join,我与一位同事在以下两个答案上存在分歧,因此需要第三种意见 假设您有两个数据框:Salary和Employee 问题:通过将Salary中的行与Employee中的行相匹配,您将使用哪个命令连接Employee和Salary Employee %>% left_join(Salary, by=c("F_NAME"="NAME")) 或 假设Employee$F_NAME和Salary$NAME包含匹配的项目,这两个命令都可以工作。区别在于如何处理没有匹配项的行 left\u join将保

我与一位同事在以下两个答案上存在分歧,因此需要第三种意见

假设您有两个数据框:
Salary
Employee

问题:通过将
Salary
中的行与
Employee
中的行相匹配,您将使用哪个命令连接Employee和Salary

Employee %>% left_join(Salary, by=c("F_NAME"="NAME")) 


假设
Employee$F_NAME
Salary$NAME
包含匹配的项目,这两个命令都可以工作。区别在于如何处理没有匹配项的行

left\u join
将保留
Employee
中的所有行。对于
Employee
中但不是
Salary
的行,任何
Salary
特有的列都将用
NA
填充

right\u join
将保留
Salary
中的所有行。对于
Salary
中的行,而不是
Employee
,任何
Employee
特有的列都将用
NA
填充

internal\u join
将只保留在
Salary
Employee
中匹配的行。其他的都被删除了

full_join
将保留两个数据帧中的所有行。任何不匹配的行都将用
NA
填充缺少的左侧或右侧列


另请参见:.

这实际上更具体地与
dplyr
有关,而不是与本机R
merge
有关。当你使用

Employee %>% left_join(Salary, by=c("F_NAME"="NAME")) 
您正在将
Employee
中的行与
Employee
Salary
中的所有列连接起来。缺少的值将被赋予
NA
。同样地

Employee %>% right_join(Salary, by=c("F_NAME"="NAME"))
将生成
Salary
中的所有行以及两个数据帧中的所有列


我认为您的问题可能与
完全加入相关,但这是一个熟悉方法的好地方。

您好。你没有详细说明你想要完成什么,那么我们怎么知道答案呢?从您在文本中使用的“连接”可以看出,您希望的是内部连接,而不是(左或右)(或完全?)外部连接。请阅读并采取行动。但是这个问题的答案很容易找到,请不要问未经研究或重复的问题。请参见文本上方的向下投票箭头(&D)。
Employee %>% right_join(Salary, by=c("F_NAME"="NAME"))