【问题标题】:Joining one variable from another dataset [duplicate]从另一个数据集中连接一个变量[重复]
【发布时间】:2020-11-28 08:52:27
【问题描述】:

我有两个数据集。我想将 dataset-2 的财富变量添加到 dataset-1 旁边的职业变量/列。 dataset-2 是从户主那里收集的,一个来自一个家庭的回应。然而,dataset-1 是从家庭中的所有女性那里收集的。因此,dataset-1 有更多的响应。

dataset-1:女性数据集(总共 8678 个响应/行)

 Women_id household_id BMI   Education Occupation
101 1 1   101 1        22.5  1         3
101 1 1   101 2        28.6  3         5
101 1 1   101 3        19.6  2         3
101 1 1   101 3        20.1  2         2
101 1 1   101 4        26.8  3         3

dataset-2:家庭数据集(总共 6784 个响应/行)

household_id    wealth
101 1           2                         
101 2           1
101 3           2
101 4           4

我想根据family_id 将财富变量添加到dataset-1。 我试过dplyr的marge功能

joined_df <- merge(dataset_1, dataset_2, by.x = "household_id", all.x = TRUE, all.y = FALSE )

两个数据集相加,但是财富值显示NA。

Women_id household_id BMI   Education Occupation  Wealth
    101 1 1   101 1        22.5  1         3      NA
    101 1 1   101 2        28.6  3         5      NA
    101 1 1   101 3        19.6  2         3      NA
    101 1 1   101 3        20.1  2         2      NA
    101 1 1   101 4        26.8  3         3      NA

我想要如下

 Women_id household_id BMI   Education Occupation  Wealth
    101 1 1   101 1        22.5  1         3       2
    101 1 1   101 2        28.6  3         5       5
    101 1 1   101 3        19.6  2         3       2
    101 1 1   101 3        20.1  2         2       2
    101 1 1   101 4        26.8  3         3       4

【问题讨论】:

    标签: r join margin


    【解决方案1】:

    由于两个数据集具有相同的household_id 列,您可以这样做

    joined_df <- dplyr::left_join(dataset_1, dataset_2, by = "household_id")
    

    使用merge() 将是

    joined_df <- merge(dataset_1, dataset_2, by = "household_id", all.x = TRUE)
    

    【讨论】:

    • 第二个可以简化为merge(dataset_1, dataset_2, by = "household_id", all.x = TRUE)
    • 同意并更新
    • 它仍然显示NA值。
    • 你能提供一个更具体的例子吗?您可以使用dput() 创建允许我们放入 R 的脚本
    猜你喜欢
    • 1970-01-01
    • 2020-06-04
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 2017-01-10
    • 1970-01-01
    相关资源
    最近更新 更多