2016-03-28 143 views
-2

我dplyr加入的技能是有点生疏,但我试图加入两个数据集看起来像这样:如何在没有主键的情况下加入新列?

L = c("a","a","a","a") 
M = c("b","b","b","b") 
N = c("c","c","c","c") 
O = c("d","e","d","e") 
P = c(1521,02915,12451,12) 
DF1 <- data.frame(L,M,N,O,P)  

L = c("a","a","a","a") 
M = c("b","b","b","b") 
N = c("c","c","c","c") 
O = c("d","e","f","d") 
Q = c(11,8805,1231,9012) 
DF2 <- data.frame(L,M,N,O,Q) 

什么是一个很好的方式去参加这些所谓P和Q是与同在一起LMNO列?我不确定是否有一种方法可以生成在dplyr中加入的主键。

我不认为这是一个合法经营的事情:

DF3 <- left_join(DF1,DF2) 

,因为我在DF2失去O栏从得到的加入。我觉得我在这里的东西很简单......

+0

为什么不试试'合并(DF1,DF2)'? ? – DatamineR

+3

如果要保留所有行,请使用'full_join'而不是'left_join'。 – Gregor

+0

@DatamineR可能的原因:'merge'可能会比较慢,并且可能会混乱行序。 – Gregor

回答

-1

如果您想根据列LMNO,试试这个独特的记录,

Select DF1.L, DF1.M, DF1.N , DF1.O , DF1.P , DF2.Q 
FROM DF1 JOIN DF2 
ON DF1.L = DF2.L 
AND DF1.M = DF2.M 
AND DF1.N = DF2.N 
AND DF1.0 = DF2.O 
+0

不要破坏你的泡泡,但我不认为OP是在索要SQL代码 – InfiniteFlashChess

+0

我很抱歉,但我认为这个问题是一个简单的问题,我给了一个简单的答案。 –

相关问题