r - 如何去除异常值但保留 NA
问题描述
我有要删除异常值的数据(如下所示)。我想删除所有位于第 1 和第 99 个百分位之外的观察值。问题是有很多 NA 观察。我想保留那些 NA 观察结果。
combined
date change_cds
<date> <dbl>
2005-12-31 -2.5975486
2005-11-30 -1.5873349
2005-11-30 NA
2005-11-30 NA
2005-11-30 -31.7240875
2005-12-31 -8.7011377
2005-12-31 9.5310180
2005-12-31 -18.9242000
2005-12-31 -3.8466281
2005-12-31 5.7158414
2005-11-30 13.0053128
2005-11-30 10.2129495
2005-11-30 NA
2005-11-30 -13.9152604
2005-11-30 -9.1434206
以前我有这个代码在数据集中没有时工作NA
:
combined <- combined %>%
filter(change_cds < quantile(combined$change_cds, (1-0.01)) & change_cds > quantile(combined$change_cds, 0.01))
然而,在NA
引入之后,代码就崩溃了。我想排除所有位于第 1 和第 99 个百分位之外的观察值,不包括NA
观察值。但我想保留所有有NA
变量的行。
提前致谢。
解决方案
您可以使用 -
library(dplyr)
combined <- combined %>%
filter(change_cds < quantile(change_cds, 0.99, na.rm = TRUE) &
change_cds > quantile(change_cds, 0.01, na.rm = TRUE) | is.na(change_cds)))
在基础 R -
combined <- subset(combined, change_cds < quantile(change_cds, 0.99, na.rm = TRUE) &
change_cds > quantile(change_cds, 0.01, na.rm = TRUE) | is.na(change_cds))
推荐阅读
- sitecore9 - 根级别的数据无效。第 1 行,sitecore 上的位置 1 升级到 9.2
- javascript - YTDL - 制作文件名视频标题
- java - 如何从 kotlin 访问枚举的“覆盖”name() 方法?
- css - React CSS 导入但未应用
- google-cloud-platform - 评估 run_dag.conf 的值
- javascript - 执行第二次搜索时如何重置 CSS(从第一次搜索中删除搜索结果)
- reactjs - 如何在关闭时重置模态道具
- ajax - 从 HTTP 到损坏的证书 HTTPS 的 IE11 AJAX 请求
- regex - Filesmatch 在 .htaccess 文件中不起作用
- android - Android Coroutines 阻止 UI 点击监听器