Як видалити рядки зі значеннями na за допомогою dplyr


Щоб видалити рядки зі значеннями NA, можна скористатися такими методами з пакета dplyr :

Спосіб 1: Видаліть рядки зі значеннями NA в будь-якому стовпці

 library (dplyr)

#remove rows with NA value in any column
df %>%
  n / A. omit ()

Спосіб 2: Видаліть рядки зі значеннями NA в певних стовпцях

 library (dplyr)

#remove rows with NA value in 'col1' or 'col2'
df %>%
  filter_at(vars(col1, col2), all_vars( ! is. na (.)))

Спосіб 3: Видаліть рядки зі значеннями NA в певному стовпці

 library (dplyr)

#remove rows with NA value in 'col1'
df %>%
  filter( ! is. na (col1))

У наведених нижче прикладах показано, як використовувати ці методи на практиці з таким кадром даних:

 #create data frame with some missing values
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C'),
                 points=c(99, 90, 86, 88, NA),
                 assists=c(33, NA, 31, 39, 34),
                 rebounds=c(NA, 28, 24, 24, 28))

#view data frame
df

  team points assists rebounds
1 A 99 33 NA
2 A 90 NA 28
3 B 86 31 24
4 B 88 39 24
5 C NA 34 28

Спосіб 1: Видаліть рядки зі значеннями NA в будь-якому стовпці

Наступний код показує, як видалити рядки зі значеннями NA в будь-якому стовпці кадру даних:

 library (dplyr)

#remove rows with NA value in any column
df %>%
  n / A. omit ()

  team points assists rebounds
3 B 86 31 24
4 B 88 39 24

Єдині два рядки, що залишилися, це ті, які не мають жодних значень NA в жодному стовпці.

Спосіб 2: Видаліть рядки зі значеннями NA в певних стовпцях

Наступний код показує, як видалити рядки зі значеннями NA в будь-якому стовпці кадру даних:

 library (dplyr)

#remove rows with NA value in 'points' or 'assists' columns
df %>%
  filter_at(vars(points, assists), all_vars( ! is. na (.)))

  team points assists rebounds
1 A 99 33 NA
2 B 86 31 24
3 B 88 39 24

Єдині рядки, що залишилися, це ті, у яких немає жодних значень NA у стовпцях «очки» або «ассисти».

Спосіб 3: Видаліть рядки зі значеннями NA в певному стовпці

Наступний код показує, як видалити рядки зі значеннями NA в певному стовпці кадру даних:

 library (dplyr)

#remove rows with NA value in 'points' column
df %>%
  filter( ! is. na (dots))

  team points assists rebounds
1 A 99 33 NA
2 A 90 NA 28
3 B 86 31 24
4 B 88 39 24

Єдині рядки, що залишилися, це ті, у яких немає жодного значення NA у стовпці «points».

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції за допомогою dplyr:

dplyr: Як фільтрувати рядки, що містять певні рядки
dplyr: Як замінити значення NA на нуль
dplyr: як використовувати фільтр «не включено».

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

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