【问题标题】:How to mix dataframes in R [duplicate]如何在R中混合数据帧[重复]
【发布时间】:2016-03-20 04:47:21
【问题描述】:

我有以下情况,2 个巨大的数据帧 X 和 Y(每个数据帧的行数约为 1300 万,每个数据帧的列数为 11),我需要以特定方式合并它们。 X 数据框示例是

    A   1   2   3
    B   3   2   4
    C   1   6   8

Y 数据框是

    A   9   1   8
    B   3   1   7
    D   2   9   4

我必须将它们与以下逻辑混合: 如果 Y 中行的第一个元素存在于 X 中,那么我必须将其附加到该行 如果 Y 中行的第一个元素在 X 中不存在,那么我必须附加零,然后附加 Y 数据 对于 Y 中不存在的所有 X 行,我必须附加零 混合结果应该是这样的:

    A   1   2   3   9   1   8       I found A in Y and I appended
    B   3   2   4   3   1   7       I found B in Y and I appended
    C   1   6   8   0   0   0       I didn't found C in Y and added 0
    D   0   0   0   2   9   4       I didn't found D in X and added 0 then appended C

我尝试逐行进行,但需要很长时间,我需要单次或双次(双指令)解决方案......

谢谢

【问题讨论】:

  • 这不就是merge(X, Y, all = TRUE, by = "V1")吗?看起来像平常的mergedupe

标签: r dataframe


【解决方案1】:

如果没有可重现的示例,我无法对此进行测试,但我认为您想要:

library(dplyr)
z<-full_join(x,y, by=FirstColumn)
z[is.na(Z)]<-0

这假设原始数据中没有 NA。

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 2018-12-14
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    相关资源
    最近更新 更多