作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试以一种非常简单的方式删除 R 中的异常值。我知道您可以为此自行创建一些函数,但我想对这个简单的代码进行一些输入,以及为什么它似乎不起作用?
outliers <- boxplot(okt$pris)$out
okt_no_out <- okt[-c(outliers),]
boxplot(okt_no_out$pris)
第一行我创建了一个带有离群值的向量,第二行我创建了一个新的数据框,省略了该向量中的值。但是...当我检查新数据框时,750 个异常值中只有大约 400 个被删除?
向量离群值包含大约 750 行,但执行此操作时它只会删除其中的大约一半....
这些简单的代码行不应该以一种非常方便的方式去除异常值吗?
最佳答案
boxplot$out
返回离群值而不是离群值的位置。所以 okt[-c(outliers),]
正在删除数据系列中的随机点,其中一些是异常值,而另一些则不是。
您可以使用箱线图统计信息的输出来检索上下 mustache 的末端,然后使用这些值过滤您的数据集。请参见下面的示例:
#test data
testdata<-iris$Sepal.Width
#return boxplot object
b<-boxplot(testdata)
#find extremes from the boxplot's stats output
lowerwhisker<-b$stats[1]
upperwhisker<-b$stats[5]
#remove the extremes
testdata<-testdata[testdata>lowerwhisker & testdata<upperwhisker]
#replot
b<-boxplot(testdata)
关于r - 你如何删除 R 中的异常值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53201016/
我是一名优秀的程序员,十分优秀!