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
有关,而不是与本机Rmerge
有关。当你使用
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"))