%in%的相反操作:排除向量中指定值的行

370

在数据框D1中,分类变量V1的值可以用字母A到Z表示。我想创建一个子集D2,其中排除一些值,比如B、N和T。基本上,我想要一个与%in%相反的命令。

结果:

一个数据框D1中的分类变量V1可以有由字母A到Z表示的值。我想创建一个子集D2,其中排除一些值,比如B、N和T。基本上,我想要一个与%in%相反的命令。

D2 = subset(D1, V1 %in% c("B", "N", "T"))

97
不在其中? (!(x %in% y)). 有时候生活可以很简单…… - Joris Meys
可能是重复的问题:如何从数据框中选择不匹配的行? - Chase
13个回答

0
在 %in% 的帮助文档中,help("%in%"),在示例部分中包含了以下 not in 的定义,

"%w/o%" <- function(x, y) x[!x %in% y] #-- x without y

让我们试试它:
c(2,3,4) %w/o% c(2,8,9)
[1] 3 4

或者

"%w/o%" <- function(x, y) !x %in% y #--  x without y
c(2,3,4) %w/o% c(2,8,9)
# [1] FALSE  TRUE  TRUE

0

-2
在Frank Harrell的R实用函数包中,他有一个%nin%(不在)函数,它恰好可以解决原问题。没有必要重新发明轮子。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接