使用%in%和“%!in%”

时间:2018-02-28 20:13:57

标签: r

我想根据数据是否包含第二个列表中指定的“ID”列值将数据框的内容拆分为两个。

我有dplyr加载并且%in%效果很好,但得到但是%!in%返回了以下错误:

  

D2A< -D1 [D1 $ ID%以%modtab2 $ ID,]

> D2b<-D1[D1$ID%!in%modtab2$ID,]
> Error in lapply(x, `[`, i) : could not find function "%!in%"

有关修复的建议?

1 个答案:

答案 0 :(得分:1)

正如错误消息所述,%!in%不是R函数。

你必须否定整个表达,例如!(x %in% y)

所以你可以做:D1[!(D1$ID %in% modtab2$ID), ]

您还可以创建自定义%!in%功能:

`%!in%` <- function(x, y) !(x %in% y)