有效地删除 R 中带有字符变量的行

Efficiently deleting rows with character variables in R

我想删除一些具有特定字符变量的行。我可以做到,但效率不高。下面的代码有效,但我想要一种更有效的方法。

Stuff2<-Stuff1[!Stuff1$State.Code=="PR",]
Stuff2<-Stuff2[!Stuff2$State.Code=="HI",]
Stuff2<-Stuff2[!Stuff2$State.Code=="AK",]

如何创建一行代码来删除所有具有 PR、HI 和 AK 的观察值?我看到许多数值示例,但 none 字符。

dplyr的解决方案:

library(dplyr)
Stuff2 %>%
    filter(!State.Code %in% c("PR", "HI", "AK"))
# you remove if state.code is not in the character vector provided.

并以 R 为基数:

subset(Stuff2, !State.Code %in% c("PR", "HI", "AK"))

使用正则表达式和基础 R:

Stuff2[grepl("[^(PR|HI|AK)]",Stuff2$State.Code),]