合并操作在R中会导致行重复。

3
我有两个数据集,它们都有共同的国家名称。 第一个数据框 正如您所看到的,这两个数据集都有相同格式的两个字母的国家代码。
运行以下代码后: merged<- merge(aggdata, Trade, by="Group.1" , all.y = TRUE, all.x=TRUE) 我得到了以下结果 而不是拥有两个具有相同国家代码的行,我想将它们合并。
谢谢!

好的话题,但是提问方式很糟糕。 - Emile Zäkiev
2个回答

3

我强烈怀疑你的数据框中的Group.1字符串有一个或多个尾随空格,因此在查看时它们看起来相同,但实际上不同。一种简单的方法是通过视觉检查它们是否相同:

levels(as.factor(Trade$Group.1))
levels(as.factor(aggdata$Group.1))

如果问题确实是由于尾随空格引起的,那么如果你使用的是R 3.2.0或更高版本,请尝试以下步骤:
Trade$Group.1 <- trimws(Trade$Group.1)
aggdata$Group.1 <- trimws(aggdata$Group.1)

如果您正在使用read.table等方法输入数据,则最好使用参数strip.white=TRUE来去除空格。

以后参考,最好发布数据样本而不是截图。


0
以下方法适用于我:
aggdata <- data.frame(Group.1 = c('AT', 'BE'), CASEID = c(1587.6551, 506.5), ISOCNTRY = c(NA, NA),
                      QC17_2 = c(2.0, 1.972332), D70 = c(1.787440, 1.800395))

Trade <- data.frame(Group.1 = c('AT', 'BE'), trade = c(99.77201, 100.10685))

merged<- merge(aggdata, Trade, by="Group.1" , all.y = TRUE, all.x=TRUE)

我不得不从你的截图中手动转录你的数据,所以我只做了前两行。如果你能粘贴一份完整的数据样本,那会很有帮助。请参考这里的一些指南,以生成可重现的示例:https://dev59.com/eG025IYBdhLWcg3whGSx#5963610


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接