Q1.25% Q3.75% iqr.75%
-4.4 4.9 9.3
outlier<-function(x){
Q<-quartiles(x)
min_outlier<-Q[1]-1.5*Q[3] #outlier based on 25% quartiles
min_outlier
max_outlier<-Q[2]+1.5*Q[3] #outlier based on 75% quartiles
max_outlier
x<-vector()
for (i in 1:length(x)){
if (max_outlier< x[i] || min_outlier>x[i]) {x[i]<-c("true")}
else{x[i]<-c("false")}
x<-x[i]
i<-i+1
}
return(x)
}#函数应返回x作为true或false值。if (max_outlier < xi || min_outlier > xi) {中出错:缺少需要TRUE/FALSE的值。
发布于 2020-11-19 11:56:19
您不需要for循环来检查每个单独的值。你也是指quantile而不是quartiles吗?
outlier<-function(x){
Q <- quartiles(x)
min_outlier<-Q[1]-1.5*Q[3]
max_outlier<-Q[2]+1.5*Q[3]
x > max_outlier | x < min_outlier
}https://stackoverflow.com/questions/64905145
复制相似问题