有没有办法从一列中的名称中没有单词的数据框中选择所有行?
示例:
从此数据框
Organism Value
Boa (sick) 3
Cat 1
Cat (sick) 2
Wolf 2
Wolf (sick) 8
Crow 4
我希望名称中没有(sick)
的行:
Organism Value
Cat 1
Wolf 2
Crow 4
我知道数据格式错误,最好有第三列“健康”,但我必须使用我拥有的数据。
答案 0 :(得分:7)
d <- data.frame(Organism=c("Boa (sick)", "Cat", "Cat (sick)", "Wolf", "Wolf (sick)", "Crow"), Value=c(3, 1, 2, 2, 8, 4), stringsAsFactors=FALSE)
d[!grepl(pattern="(sick)", x=d$Organism, fixed=TRUE), ]
# Organism Value
#2 Cat 1
#4 Wolf 2
#6 Crow 4
答案 1 :(得分:1)
尝试
df<-data.frame(Organism=c('Boa (sick)','Cat','Cat (sick)','Wolf','Wolf (sick)','Crow'),Value=c(3,1,2,2,8,4))
expel<-grep('(sick)',df$Organism)
if(length(expel)>0){
df1<-df[-expel,]
}
df1
# Organism Value
#2 Cat 1
#4 Wolf 2
#6 Crow 4
答案 2 :(得分:0)
另一个非常相似的替代方案:
subset(d, grepl("(sick)", Organism, fixed=TRUE))