【问题标题】:Merging two datasets in R with column names in common [duplicate]将R中的两个数据集与共同的列名合并[重复]
【发布时间】:2020-07-28 16:57:36
【问题描述】:

所以我有两个数据集,

一个是美国人口普查数据,它被保存为数据框“US_Census_county”,具有年份、州、县、人口普查列

另一个是Mass Shooting Data保存为数据框“GVA_MassShooting”,包含Year,State,County,num_killed,num_injured。

我想在 R 中合并它们并创建一个新的数据框。这周我正在 DataCamp 上学习 R,所以我对此还是很陌生。

我试过了

merge(US_Census_county,GVA_MassShooting,all=TRUE)

但这创建了一个数据框,我认为它只是一个在另一个之上,因为当我检查它是额外列的 NA 时

【问题讨论】:

    标签: r dataframe merge


    【解决方案1】:

    看看这是否适合你:

    library(dplyr)
    inner_join(US_Census_county,GVA_MassShooting)
    

    【讨论】:

    • 感谢您的建议。我试了一下,它产生了一张空白表。
    • 这可能意味着至少有一个匹配的列名具有不同的数据。问题可能出在大写上。通过键入?inner_join 检查inner_join 的语法,您将看到指定它应该使用哪些变量来查找匹配记录的语法。尝试让它加入一个变量。然后再增加一秒钟,直到它突然停止匹配。
    • 现在可以使用了,谢谢!
    【解决方案2】:

    merge() 设置all = TRUE 相当于要求(full) outer join

    您可能会看到这些数据框“堆叠”的一个原因可能是因为merge() 无法唯一标识行。您的数据框(例如年份、州和县)之间的共享列是否可能无法唯一标识行?例如,一年内是否会发生多次枪击事件,即 GVA_MassShooting 中的多行具有相同的 Year-State-County 组合?

    至于 NA,它们在两个 data.frame 之间的年份、州或县的表示方式是否会略有不同?例如,字符串名称后的前导或尾随空格(例如 "OR" == "OR " 将返回 FALSE)将导致不匹配并导致 NA 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 2016-08-01
      • 2016-03-25
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多