如何使用多个排除项对数据集进行子集化



如何将所有状态名称组合在一个向量中,而不是单独列出所有逻辑排除项?我在CRAN网站上找到了函数%notin%,但R不承认它是一个合法的函数。

indata <- indata[which(indata$STATE != "GU" & indata$STATE != "WY" &
                       indata$STATE != "KS" & indata$STATE != "ME" &
                       indata$STATE != "MT" & indata$STATE != "ND" &), ]

谢谢。

indata[!indata$STATE %in% c("GU", "WY", "KS", "ME", "MT", "ND"), ]

编辑:@CarlWitthoft,信不信由你,我实际上在私人包中有以下内容已有一段时间了

`%notin%` <- function (x, table) x[!x %in% table]

但是,在我已经打了很长时间之后,我从未想过使用它。 另外,使用它会使我的代码的可分发性降低。 我不知道

operators:::`%!in%`

这只是%notin%的后半部分

再试一次:

library(operators) 
x%!in%y  
#works fine 

最新更新