обработка выбросов в r для экстремальных выбросов - PullRequest
1 голос
/ 08 мая 2020

Я работаю над школьным проектом и обнаружил несколько выбросов в одной из своих колонок. Я считаю, что эти выбросы мешают моему тесту корреляции. Я использовал следующий код для их идентификации:

boxplot(df$col)
boxplot(df$col)$out
outliers <- boxplot(df$col)$out

после моей идентификации, как мне с ними обращаться? Не могли бы вы предоставить какой-нибудь код, который я мог бы подключить, который будет обрабатывать их автоматически. Я точно знаю, что есть два крайних отклонения. Вы бы порекомендовали лечить их, а все остальное оставить? Если да, то каким будет код ... их больше 2000, и это единственные два числа, превышающие 100.

1 Ответ

1 голос
/ 08 мая 2020
# Nullify outliers: out_free_df => data.frame 
out_free_df <- within(df, {
    col <- ifelse(col %in% boxplot.stats(col)$out, NA, x)
    }
  )

# Impute outliers with mean: imputed_df => data.frame
imputed_df <- within(out_free_df, {col <- ifelse(is.na(col), mean(col, na.rm = TRUE), col)}
...