R语言 如何移除异常值行

wn9m85ua  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(498)
ap_lo          cholesterol gluc      smoke     alco      active   
 Min.   :  -70.00   1:52385     1:59479   0:63831   0:66236   0:13739  
 1st Qu.:   80.00   2: 9549     2: 5190   1: 6169   1: 3764   1:56261  
 Median :   80.00   3: 8066     3: 5331                                
 Mean   :   96.63                                                      
 3rd Qu.:   90.00                                                      
 Max.   :11000.00

如果你注意到,ap_lo在两端都有异常值,它们是数据输入错误,ap_lo是舒张压,它不应该是负值或那么高。
我想删除它们(可能会找到更多),我该如何删除它们在R中的索引呢?
下面的代码 * 不是 * 答案:

CV$ap_lo <- CV[-c(which.min(CV$ap_lo))]
jckbn6z7

jckbn6z71#

许多有效方法之一是使用boxplot返回的非参数离群值。
v为您的值:v <- c(-100, rnorm(50), 100)statsboxplot ing返回的统计量(不需要实际绘图):stats <- boxplot(v, plot = FALSE),则可以删除离群值(根据箱线图标准),如:v_without_outliers <- setdiff(v, stats$out)或更短:

v_without_outliers <- 
    setdiff(v, (v |> boxplot(plot = FALSE))$out)

相关:

相关问题