【发布时间】:2016-03-28 18:17:01
【问题描述】:
我的 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 列。我觉得我在这里遗漏了一些非常简单的东西......
【问题讨论】:
-
为什么不试试
merge(DF1,DF2)?? -
如果你想保留所有行使用
full_join而不是left_join。 -
@DatamineR 可能的原因:
merge可能会更慢并且可能会影响行顺序。 -
所以
merge(DF1,DF2, all = TRUE)不是你想要的? -
full_join 和 merge(x, y, all = TRUE) 做的任务一样吗?