如何在r中创建两个数据集不匹配的行的数据集

wsxa1bj1  于 2023-03-05  发布在  其他
关注(0)|答案(2)|浏览(142)

我试图合并2个不同的数据集的行,他们看起来像这样:
| 十|Y型|
| - ------|- ------|
| 项目a|1个|
| B|四个|
| (c)秘书长的报告|七|
| 日|八个|
第二个数据集是
| A类|B|
| - ------|- ------|
| 项目a|九|
| j|四个|
| (c)秘书长的报告|六个|
| f级|八个|
我可以按行合并它们,但我需要创建第二个数据集,其中包含所有不匹配的值,因为我的数据集大小不等,我希望看到两个数据集之间不匹配的值。
因此,我希望输出如下所示:
| X_1|Y型|B|
| - ------|- ------|- ------|
| 项目a|1个|九|
| (c)秘书长的报告|七|六个|
数据集只包含第一个表中没有匹配的内容(我们可以假设第一个表比第二个表长)
| 十|Y型|
| - ------|- ------|
| B|四个|
| 日|八个|
有什么函数可以帮助我做到这一点吗?

wvyml7n5

wvyml7n51#

我们可以使用inner_join/anti_join

library(dplyr)
inner_join(df1, df2, by = c("X" = "A"))
  X y B
1 a 1 9
2 c 7 6
anti_join(df1, df2, by = c("X" = "A"))
   X y
1 b 4
2 d 8
7d7tgy0s

7d7tgy0s2#

仅使用公共值联接两个数据,可以使用的一种方法是merge()

merge(data1,data2,by.x = "X",by.y = "A")
  X y B
1 a 1 9
2 c 7 6

要提取不匹配的值:

data1[!(data1$X %in% data2$A),]
  X y
2 b 4
4 d 8

相关问题