由R中位数替换异常值(Replace outliers by quantiles in R)

2019-09-29 18:23发布

我一直在试图更换离群值1.5 * IQR +/-上/下通过用下面的代码上,下分位数位数:

`lower.quantile <- as.numeric(summary(loans$dINC_A)[2])
 lower.quantile
[1] 9000  
upper.quantile <- as.numeric(summary(loans$dINC_A)[5])
> upper.quantile
[1] 21240
IQR <- upper.quantile - lower.quantile
# I replace outliers by the lower/upper bound values
loans$INC_A[ loans$dINC_A < (lower.quantile-1.5*IQR) ] <- lower.quantile
loans$INC_A[ loans$dINC_A > (upper.quantile+1.5*IQR) ] <- upper.quantile`

此外:

> upper.quantile+1.5*IQR
[1] 39600
> lower.quantile-1.5*IQR
[1] -9360

但是,一旦我重新检查我的变量的摘要(),我的我得到我的极大值保持64800> upper.quantile + 1.5 * IQR = 39600

> summary(loans$dINC_A)

闵。 1曲。 中位数平均3曲。 最大。 0 9000 19500 21240 30600 64800

缺什么在我的R代码里面?

文章来源: Replace outliers by quantiles in R