Як видалити викиди з кількох стовпців у r


Часто вам може знадобитися видалити викиди з кількох стовпців одночасно в R.

Поширеним способом визначення спостереження як викиду є те, що воно в 1,5 рази перевищує інтерквартильний діапазон вище третього квартиля (Q3) або в 1,5 рази перевищує інтерквартильний діапазон нижче першого квартиля (Q1).

Використовуючи це визначення, ми можемо використати наступні кроки, щоб створити просту функцію для визначення викидів, а потім застосувати цю функцію до кількох стовпців у кадрі даних R.

Крок 1: Створіть фрейм даних.

Почнемо зі створення кадру даних у R:

 df <- data.frame(index=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 var1=c(4, 4, 5, 4, 3, 2, 8, 9, 4, 5),
                 var2=c(1, 2, 4, 4, 6, 9, 7, 8, 5, 29),
                 var3=c(9, 9, 9, 5, 5, 3, 4, 5, 11, 34))

Крок 2. Визначте функцію викиду.

Далі визначимо функцію, яка може ідентифікувати викиди, і функцію, яка потім може видаляти викиди:

 outliers <- function (x) {

  Q1 <- quantile(x, probs =.25)
  Q3 <- quantile(x, probs =.75)
  iqr = Q3-Q1

 upper_limit = Q3 + (iqr*1.5)
 lower_limit = Q1 - (iqr*1.5)

 x > upper_limit | x < lower_limit
}

remove_outliers <- function (df, cols = names (df)) {
  for (col in cols) {
    df <- df[!outliers(df[[col]]),]
  }
  df
}

Крок 3. Застосуйте функцію викиду до кадру даних.

Нарешті, давайте застосуємо цю функцію до кількох стовпців кадру даних, щоб видалити викиди:

 remove_outliers(df, c('var1', 'var2', 'var3'))

  index var1 var2 var3
1 1 4 1 9
2 2 4 2 9
3 3 5 4 9
4 4 4 4 5
5 5 3 6 5
9 9 4 5 11

Ви можете знайти більше навчальних посібників з R тут .

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *