我想删除数据框中的所有行,其中A列包含“_”或“(”或“)”,其中D列不包含“InService”。
我相信你可以使用grep或grepl作为contains部分,但我不知道如何将它绑定到下面的表达式中。
Atoll <- read.csv("ATOLL_TABLE20160803_084232.csv")
AtollInService <- Atoll[(Atoll$MILESTONE=="InService" & grep(???)),]
下面是我导入的excel文件的示例,请注意我隐藏了几列,因为数据分布在许多字段中。
NOMINAL_ID MILESTONE
WW_4752 (MD) Planned
WW_4752 (MD) Planned
WW_4752 (MD) Planned
LX0022 (OZ) Planned
LX0022 (OZ) Planned
LX0023 InService
LX0023 InService
LX0023 InService
LX0023 InService
LX0023 InService
LX0023 InService
以下是我希望实现的目标:
NOMINAL_ID MILESTONE
LX0023 InService
LX0023 InService
LX0023 InService
LX0023 InService
LX0023 InService
LX0023 InService
答案 0 :(得分:1)
使用grepl
;见?grepl
。
Atoll <- read.csv("ATOLL.csv")
Atoll_filtered <-
with(Atoll, Atoll[grepl("[_()]", NOMINAL_ID) &
!grepl("InService", MILESTONE), ])
nrow(Atoll)
# [1] 65
nrow(Atoll_filtered)
# [1] 36
head(Atoll_filtered)
# NOMINAL_ID MILESTONE
# 1 WW_4664 (KNP) Planned
# 2 WW_4664 (KNP) Planned
# 3 WW_4664 (KNP) Planned
# 4 WW_4664 (KNP) Planned
# 5 WW_4664 (KNP) Planned
# 9 WW_4665 (KNP) Planned