从第二个数据框中提取新添加的行与第一个数据框进行比较

时间:2020-06-22 12:03:29

标签: r

我有两个数据帧,我需要在第二个数据帧中找到新添加的行,这意味着我的第一个数据帧中有一些行,而第二个数据帧中的第一个数据帧中可以有几行,而其他一些行也。我需要找到不在第一个数据帧中的那些行。那意味着只有我第二个数据帧中的行。

下面是带有输出的示例

comp1<- data.frame(sector =c('Sector_123','Sector_456','Sector_789','Sector_101','Sector_111','Sector_113','Sector_115','Sector_117'), id=c(1,2,3,4,5,6,7,8) ,stringsAsFactors = FALSE)

comp2 <- data.frame(sector = c('Sector_456','Sector_789','Sector_000','Sector_222'), id=c(2,3,6,5),  stringsAsFactors = FALSE)

预期的输出应如下所示:

sector             id
Sector_000          6
Sector_222          5

我不应该使用其他任何库,例如compare和data.table。 任何建议

1 个答案:

答案 0 :(得分:0)

假设我们正在sector列中寻找类似的条目。对于所有列,只需删除限制即可。

我们可以使用dplyr

anti_join(comp2, comp1, by="sector")

给我们

> anti_join(comp2, comp1, by="sector")
      sector id
1 Sector_000  6
2 Sector_222  5

有了base R,我们可以使用

comp2[!comp2$sector %in% comp1$sector,]