【发布时间】:2017-06-06 14:17:26
【问题描述】:
我有一个数据框,我想获取每列异常值索引。
这是我的数据框的一部分;
mediamarkt[,48]
[1] 7126 4012 3711 3237 3432 2671 2861 7065 3158 4023 4770 3861
[13] 4108 7408 9071 3596 3889 4093 4446 6059 8345 10291 5546 5129
[25] 4683 4670 5694 8619 11047 5743 5775 5216 5283 4854 7871 9944
[37] 3797 3821 3834 3999 4577 8898 11396 4508 5459 3668 3885 4021
[49] 7491 8831 3513 3606 3332 3189 3656 6859 9167 3306 3305 3379
[61] 3507 3912 6562 8245 3420 3445 3530 3404 3847 7187 9128 3623
[73] 3581 3401 2784 3024 6342 7835 2766 2718 2578 2591 2737 5479
[85] 7064 2528 2550 2287 1893 1846
首先,我尝试使用此代码获取异常值的值:
boxplot(mediamarkt[,48])$out 我得到 2 个异常值;
[1] 11047 11396
到目前为止一切正常,但是当我需要使用以下代码获取异常值的索引时:
which(mediamarkt[,48] %in% boxplot_mediamarkt$out)
[1] 5 18 29 43 59
我得到超过 2 个异常值,它与这些结果不匹配
我的代码有什么问题
谁能帮我解决我的问题?
【问题讨论】:
-
您是否检查过数据框列中的所有值都是唯一的?如果不是,那么很可能有 5 个指数提供 2 个异常值。
-
你在测试
boxplot_mediamarkt$out而不是boxplot(mediamarkt[,48])$out它们真的一样吗? -
boxplot.stats 给出异常值(或检查哪些值是 +/- 2xSD)。
-
谢谢@G5W。您的评论很有帮助