1

有没有办法从数据框中选择一列中名称没有单词的所有行?

例子:

从这个数据框

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

我知道数据格式错误,最好有第三列“健康”,但我必须处理我拥有的数据。

4

3 回答 3

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
于 2012-08-18T23:49:00.560 回答
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
于 2012-08-18T23:47:17.363 回答
0

另一个非常相似的选择:

subset(d, grepl("(sick)", Organism, fixed=TRUE))
于 2012-08-19T03:23:31.940 回答