如何按位置合并两个不同长度的大型数据集?

时间:2017-11-19 11:34:14

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

我有2个数据集

  1. 与出生有关的结果(150k记录)
  2. 死亡原因(320k记录)
  3. 这两个数据集都有位置和年份。我不确定如何将这些数据集合并为一个。目标是合并这些数据集并通过比较出生相关结果和基于位置的死亡原因提供可视化。

    我试图通过R来做到这一点。但由于规模不同,我无法继续前进。

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

1 个答案:

答案 0 :(得分:0)

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

    D1和D2
  • key =(年,地点)
  • key =(年份,位置)在D1但不在D2
  • key =(年份,位置)在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)