【发布时间】:2020-02-11 23:19:34
【问题描述】:
基本上每次我尝试合并两个数据框时,我都会返回一个包含 0 行的合并 data.frame。
这两个数据框有不同的行数(一个 122 另一个 112),不同的列数并且与这些相似(数据都是发明的 ndr): df1
S_ID BMI WEIGHT HEIGHT
AA1 18.0 50.0 178
BB2 20.0 60.0 173
CC3 16.0 47.0 170
DD4 23.0 75.0 170
df2
S_ID sex age
AA1 F 20
BB2 M 27
CC3 M 26
DD4 F 18
如你所想,我想通过S_ID 合并它们。我对保留两个数据框中都不存在的行不感兴趣。
我试过了:
merge(df1, df2)merge(df1, df2, by = S_ID)-
merge(df1, df2, by = S_ID, all=FALSE)乃至:merge(df1,df2, by = S_ID, all=TRUE)我使用 RStudio,并直接从“导入数据”加载数据集。数据集最初都是.csv。 当我问typeof()这两个数据集时,它说它们是列表。
更新: 大家好,确实有一个条目问题。 在 df2 中,“S_ID”列中的所有名称之后都有我不知道的空格。 非常感谢您的帮助。
【问题讨论】:
-
可能是 S_ID 列之一中的尾随或前导空格?
-
merge(df1, df2, by = "S_ID")应该可以工作 - 请注意您需要引用列名 - 不这样做会导致错误,除非您的环境中有一个名为S_ID的对象。 -
您好,感谢您的回复;尾随是什么意思?
-
您应该添加一个数据框样本。使用
dput(head(df1))和dput(head(df2))并将输出粘贴到您的问题中。 -
您可以隐藏任何敏感信息,但如果您需要进一步的帮助,您需要提供重现问题的示例。否则纯属猜测。我会注意@42- 的建议,并确保已从两个 id 变量中删除空格。