r - 去除异常值后包括 NA
问题描述
删除异常值后,我想在我的数据集中包含 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
不知道我哪里出错了。
谢谢!磷
解决方案
您只需为 is.na() 添加一个子句。因为当询问 NA < 13 时,R 将返回 NA 而不是 T 或 F
myData_no_ol <- subset(myData, myData$measurement < 13 | is.na(myData$measurement))
推荐阅读
- c# - Xamarin Forms 因异步 Http 调用而崩溃
- c++ - 使用 sqlite3 设置 C++ 代码示例不起作用
- javascript - 从列表中选择新选项时,它会替换以前的元素
- angular - router.navigate 不工作并允许其下面的语句执行
- reactjs - 如何使用 MaterialTable 屏蔽密码
- sql - 如何为给定的主键在两列中执行少量计算
- html - html表单将输入字段与复选框对齐
- amazon-web-services - AWS“堆栈计数”与“管理员帐户的堆栈计数”限制
- java - 为什么当我看到通配符条目时出现 javax.net.ssl.SSLHandshakeException: No subject Alternative DNS name matching found 异常
- c++ - Win32 GUI C(++) 应用程序将 stdout 和 stderr 重定向到磁盘上的同一个文件