gpt4 book ai didi

r - R 中的 IQR 异常值

转载 作者:行者123 更新时间:2023-12-02 09:13:54 24 4
gpt4 key购买 nike

我应该使用 1.5*IQR 规则通过在函数中使用这两个方程来确定左右尾部的离群值:

  • Q1-(1.5*IQR)
  • Q3+(1.5*IQR)

这是我目前尝试过的:

IQR.outliers <- function(x) {
if(any(is.na(x)))
stop("x is missing values")
if(!is.numeric(x))
stop("x is not numeric")
Q3<-quantile(x,0.75)
Q1<-quantile(x,0.25)
IQR<-(Q3-Q1)
left<-x<(Q1-(1.5*IQR))
right<-x>(Q3+(1.5*IQR))
c(left,right)
}

最佳答案

目前你得到的是一个逻辑向量。而是使用逻辑索引。假设您只想要值本身而不是它们的位置,那么:

IQR.outliers <- function(x) {
if(any(is.na(x)))
stop("x is missing values")
if(!is.numeric(x))
stop("x is not numeric")
Q3<-quantile(x,0.75)
Q1<-quantile(x,0.25)
IQR<-(Q3-Q1)
left<- (Q1-(1.5*IQR))
right<- (Q3+(1.5*IQR))
c(x[x <left],x[x>right])
}

检查它是否给出了合理的结果:

> IQR.outliers (1:100)
integer(0)
> IQR.outliers (c(1:100,1000))
[1] 1000
> IQR.outliers (rnorm(1000) )
[1] -3.522064 -3.296682 2.910200 2.671333

关于r - R 中的 IQR 异常值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49090357/

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