gpt4 book ai didi

r - 你如何删除 R 中的异常值?

转载 作者:行者123 更新时间:2023-12-02 03:26:34 24 4
gpt4 key购买 nike

我目前正在尝试以一种非常简单的方式删除 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com