【发布时间】:2016-06-27 15:15:59
【问题描述】:
我有两个数据框(df1 和 df2)。我想使用合并功能加入他们。
df1 有 3903 行,df2 有 351 行。
我想通过一个公共列(column1)将 df2 左连接到 df1。我正在使用合并功能。
我的代码如下:
dfjoin<-merge(df1,df2, by="column1",all.x=TRUE)
所以我希望 dfjoin 有 3903 行等于 df1 的行。但是它返回 4010 行。
为什么它返回的行数比预期的多。我会很高兴得到任何帮助。非常感谢。
【问题讨论】:
-
这可能是因为 df2 的 column1 中的值不是 1-1 映射。这意味着 column1 中的单个值可能与 column2 中的多个值相关。您可以使用
table(df2$column1)进行检查。如果您从 column1 中找到一个计数 > 1 的值,那么这就是原因。 -
另外,如果您对 sql 更满意,我想推荐一个替代方案,有一个非常好的库,名为
sqldf,它允许您在数据帧上使用类似 sql 的查询!