【发布时间】:2021-11-24 20:18:06
【问题描述】:
我有两个大数据集,每个数据集超过 300 万个,我使用 full_join 使用变量“N_AIH”将它们合并在一起。事情是,在数据集 1 中,这个变量被称为“N_AIH”,在数据集 2 中,它被称为“NUM_AIH”。这就是我加入他们的方式:
join_test <- full_join(dataset1, dataset2, by = c("N_AIH" = "NUM_AIH"), keep = TRUE)
我必须将两个变量都保留在连接的数据集中,但现在我需要识别:
1 - 两个数据集中的 Obs(匹配项) 2 - 在数据集 1 中但不在数据集 2 中的 Obs 3 - 在数据集 2 中但不在数据集 1 中的 Obs
我似乎找不到办法。我需要使用 N_AIH/NUM_AIH 变量。
【问题讨论】:
-
我不明白。使用 full_join 你已经拥有了你需要的东西:1)没有 NA 的行出现在两个数据帧中; 2) "N_AIH" 列中具有 NA 的行仅存在于第二个数据帧中,3) 反之亦然,"NUM_AIH" 列中具有 NA 的行仅存在于第一个数据帧中
-
从这段代码的输出看来,
full_join保留了两列:set.seed(4)dataset1 <- data.frame(id1=1:10,N_AIH=sample(letters,10))dataset2 <- data.frame(id2=1:10,NUM_AIH=sample(letters,10))join_test <- dplyr::full_join(dataset1, dataset2, by = c("N_AIH" = "NUM_AIH"), keep = TRUE)。我错了吗? -
@Elia 不,你没有错。你说的对。你应该把这个作为我猜的答案发布
-
我认为 OP 必须提供可重现的示例或
dput数据样本,以确保可能的答案满足她的需求