1

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

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

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

4

2 回答 2

0

一个解决方案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"))
于 2018-07-25T15:17:43.267 回答
0

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

Stuff2[grepl("[^(PR|HI|AK)]",Stuff2$State.Code),]
于 2018-07-25T15:19:12.247 回答