Как удалить строки со значениями na с помощью dplyr


Вы можете использовать следующие методы из пакета dplyr для удаления строк со значениями NA:

Способ 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 в столбце «баллы».

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции с помощью dplyr:

dplyr: как фильтровать строки, содержащие определенные строки
dplyr: Как заменить значения NA на ноль
dplyr: Как использовать фильтр «не включено»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *