4

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

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

谢谢。

4

2 回答 2

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

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

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

然而,我从来没有想过要使用它,直到我已经把它打了很长一段路。另外,使用它会降低我的代码的可分发性。我不知道

operators:::`%!in%`

这只是后半部分%notin%

于 2012-05-11T19:17:16.573 回答
3

再试一次:

library(operators) 

x%!in%y  

#works fine 
于 2012-05-11T23:38:44.440 回答