我有两个具有以下维度的数据框:
dim(x)
8637 133
dim (y)
8113 26
我试图通过 x 和 y 中的一个公共列合并 x 和 y。我正在使用 dplyr 包中的 left_join 函数。
df <- dplyr::left_join(x, y, by = "col1")
合并数据中的行数多于第一个数据帧(x)。
nrow(df)
8666
合并 x 和 y 后我期望得到的是一个新的数据框,其中包含来自 x 的所有行以及来自 x 和 y 的所有列。我想这就是 dplyr 中的 left_join 应该做的,但是 left_join() 的结果有问题。知道如何解决这个问题吗?
如果没有可重现的示例,很难确定,但“y”数据框可能在“col1”中有重复的值。
例子:
x <- data.frame(col0 = 1:3, col1 = letters[1:3])
y <- data.frame(col1 = c("a", "a", "b"), col2 = 4:6)
left_join(x, y, by = "col1")
col0 col1 col2
1 1 a 4
2 1 a 5
3 2 b 6
4 3 c NA
虽然两个数据框都有 3 行,但结果连接有 4 行,这是完美的!也许您需要从“y”数据框中删除重复项?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句