修复删除R中的行(删除一列中具有特定负值的行)



我有6列的数据集。第一列是数据。第4列为"scPM25"。后一列的值为0、-1、-2或NA。

我必须删除值为-2的行。应保留具有0、-1或NA的行!

当我在R中尝试各种代码时,我总是得到一个完整的NA数据集。我尝试的所有代码都失败了。

一些失败的例子:

全部返回完整的NA集。

sds3<-sds[scPM25>=-1.9,]

sds5<-过滤器(sds,scPM25!=-2(

sds6<-过滤器(sds,scPM25!="-2"(

您可以使用is.na并将您的条件与|(或(组合为子集,如:

x  <- data.frame(a=1:4, b=c(0,-1,-2,NA))
x[is.na(x$b) | x$b != -2,]
#  a  b
#1 1  0
#2 2 -1
#4 4 NA
subset(x, is.na(b) | b != -2)
#1 1  0
#2 2 -1
#4 4 NA
#Or as @Cath suggested
subset(x, !b %in% (-2))
#  a  b
#1 1  0
#2 2 -1
#4 4 NA

这里有一个例子:

data <- c('John Doe','Peter Gynn','Jolie Hope', 'Freddie Mercury', 'Bob Dylan')
col2 <- c(21000, 23400, 26800, 27000, 39000)
col3 <- as.Date(c('2010-11-1','2008-3-25','2007-3-14','2007-3-14','2007-3-14'))
scPM25 <- c(-1, -2, NA, 0, -2)
sds <- data.frame(data, col2, col3, scPM25)
sds2 <- sds[is.na(sds$scPM25) | sds$scPM25 != -2, ]

最新更新