0

我想检查 R 中每个变量的异常值并将变量的异常值更改为特定值。

很多人在stackoverflow中写过推荐outlierTestcar包中的功能。

然而,outlierTest 函数提取的是特定行的结果,而不是变量。

我希望变量具有异常值并将该值更改为特定值。我应该使用哪些函数和代码?

+这是我的数据代码。它是开源的。因此,您可以按以下代码加载该数据。

credit<-read.csv("http://freakonometrics.free.fr/german_credit.csv", header=TRUE)
F=c(1,2,4,5,7,8,9,10,11,12,13,15,16,17,18,19,20,21)
for(i in F) credit[,i]=as.factor(credit[,i])
4

2 回答 2

0

查找异常值并将其替换为第 99 个百分位值

Data_Outlier <- read.csv(file.choose()) # Your dataset
percentile.table = data.frame(NULL)

for(i in 2:ncol(Data_Outlier))
 {      
     if (is.numeric(Data_Outlier[,i]))
     {
         percentile_value <- quantile(Data_Outlier[,i],c(0.99),na.rm=TRUE)
         Variable = names(Data_Outlier)[i]
         Percentile.99 = percentile_value
         table = cbind(Variable, Percentile.99)
         percentile.table = rbind(percentile.table,table)
     }
 }
print(percentile.table,row.names=FALSE)

for(i in 2:ncol(Data_Outlier))
 {
     Percentile.99 = quantile(Data_Outlier[,i],c(0.99),na.rm=TRUE)
     Data_Outlier[,i][Data_Outlier[,i]>Percentile.99] = Percentile.99
 }
于 2017-07-14T09:16:41.033 回答
0

您有几个选项来检测和更改异常值。请检查这个非常有用的帖子:

https://www.r-bloggers.com/outlier-detection-and-treatment-with-r/

于 2017-07-14T07:44:01.700 回答