【问题标题】:How to merge two large datasets of different lengths by location? [duplicate]如何按位置合并两个不同长度的大型数据集? [复制]
【发布时间】:2017-11-19 11:34:14
【问题描述】:

我有 2 个数据集

  1. 出生相关结果(15 万条记录)
  2. 死亡原因(32 万条记录)

这两个数据集都有相同的位置和年份。我不确定如何将这些数据集合并为一个。目标是合并这些数据集,并通过比较基于位置的出生相关结果和死因来提供可视化。

我正在尝试通过 R 执行此操作。但由于大小不同,我无法继续进行。

如何使用 R 或 Excel 或任何合适的数据清理工具合并数据?

【问题讨论】:

  • 你试过merge(first_data_set, second_data_set)吗?如果要合并的列具有相同的名称,那应该可以正常工作。如果列名不同,则必须指定要匹配的列名。详情请见?merge

标签: r excel merge data-visualization data-cleaning


【解决方案1】:

实际上,需要合并两个数据集以形成每个列,大小差异不是问题,因为我们没有并列列,我们是根据每个数据集的年份和位置字段的值来合并它们.所以合并将有一个多变量的合并键(或者我们可以简单地将它们连接成一个变量以获得更简单的键)。在所有情况下,我们可以有 3 种不同的情况:

  • key=(年份,位置)在 D1 和 D2 中
  • key=(year, location) 在 D1 但不在 D2
  • key=(year, location) 在 D2 但不在 D1

我认为可视化需要 D1 和 D2 中的列(第一个要点):然后需要数据集的内连接。 要在 R 中执行它,我们可以使用 data.table 包,它的语法非常简单。

library(data.table)
# Extract the data in a data.table format 
    # can be replaced by reading from a file using fread or any other command to have both data sets as data tables.
dt1 <- as.data.table(df1) 
dt2 <- as.data.table(df2)

# set the merging key in each data table
setkey(dt1, "year", "location")
setkey(dt2, "year", "location")
# merge data tables
dt.result <- merge(dt1, dt2) # keep the default settings (inner join)

【讨论】:

    猜你喜欢
    • 2021-11-19
    • 2014-08-13
    • 2015-06-25
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 2018-08-21
    相关资源
    最近更新 更多