去除异常值后包括 NA

Include NA after removing outliers

我想在移除异常值后将 NA 包含在我的数据集中。例如,在下面的数据框中,我想删除大于 13 的异常值。我已按数据帧进行子集化以创建没有异常值的新数据框,但我的代码也删除了 NA。我试过使用 na.rm= FALSE 但我只收到一个错误。

id <- c(3,3,6,6,4,4,3,3)
age_cat <- c(1,1,1,1,2,2,3,3,)
measurement <- c(10, 13, 14,13, NA, 11, NA, 17)
myData <- data.frame(id, age_cat, measurement)
myData

#If I use this the outliers are removed along with NAs
myData_no_ol <- subset(myData, myData$measurement < 13)
myData_no_ol

#If I use this I get an error
#Error: unexpected ',' in "myData_no_ol <- subset((myData,"

myData_no_ol <- subset((myData, myData$measurement < 13), na.rm= FALSE)
myData_no_ol

不确定我哪里出错了。

谢谢! P

您只需为 is.na() 添加一个子句。因为 R 将 return NA 而不是 T 或 F 当询问是 NA < 13

myData_no_ol <- subset(myData, myData$measurement < 13 | is.na(myData$measurement))