【问题标题】:Merge is duplicating rows in r合并正在复制 r 中的行
【发布时间】:2017-01-26 04:15:03
【问题描述】:

我有两个国家名称相同的数据集。

first data frame

如您所见,两个数据集都有一个格式相同的两个字母的国家/地区代码。

运行此代码后: 合并

I get the following result

我希望将它们合并在一起,而不是使用相同的国家/地区代码的 2 行。

谢谢!

【问题讨论】:

    标签: r database dataframe merge


    【解决方案1】:

    我强烈怀疑您的一个或其他数据框中的 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

    为了将来参考,最好至少发布一个数据样本而不是屏幕截图。

    【讨论】:

      【解决方案2】:

      以下对我有用:

      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://stackoverflow.com/a/5963610/236541

      【讨论】:

        猜你喜欢
        • 2016-02-11
        • 2017-01-02
        • 1970-01-01
        • 2016-01-09
        • 1970-01-01
        • 1970-01-01
        • 2016-07-18
        • 2021-11-23
        • 1970-01-01
        相关资源
        最近更新 更多