Как удалить строки с помощью dplyr (с примерами)


Вы можете использовать следующий базовый синтаксис для удаления строк из фрейма данных в R с помощью dplyr:

1. Удалите любую строку с NA.

 df %>%
  n / A. omit ()

2. Удалите любую строку с NA в определенном столбце.

 df %>%
filter( ! is. na (column_name))

3. Удалите дубликаты

 df %>%
  distinct()

4. Удалить строки по позиции индекса

 df %>%
filter( ! row_number() %in% c(1, 2, 4))

5. Удалить строки по условию

 df %>%
  filter(column1 == ' A ' | column2 > 8)

Следующие примеры показывают, как использовать каждый из этих методов на практике со следующим фреймом данных:

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C'),
                 points=c(4, NA, 7, 5, 9, 9),
                 assists=c(1, 3, 5, NA, 2, 2))

#view data frame
df

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2
6 C 9 2

Пример 1. Удаление любой строки с NA

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

 #remove any row with NA
df %>%
  n / A. omit ()

  team points assists
1 to 4 1
3 B 7 5
5 C 9 2
6 C 9 2

Пример 2. Удаление любой строки с NA в определенных столбцах.

Следующий код показывает, как удалить любую строку, содержащую значения NA в определенном столбце:

 #remove any row with NA in 'points' column:
df %>%
  filter( ! is. na (dots))

  team points assists
1 to 4 1
2 B 7 5
3 B 5 NA
4 C 9 2
5 C 9 2

Пример 3. Удаление повторяющихся строк

Следующий код показывает, как удалить повторяющиеся строки:

 #remove duplicate rows
df %>%
  distinct()

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2

Пример 4. Удаление строк по позиции индекса

Следующий код показывает, как удалять строки на основе позиции индекса:

 #remove rows 1, 2, and 4
df %>%
filter( ! row_number() %in% c(1, 2, 4))

  team points assists
1 B 7 5
2 C 9 2
3 C 9 2

Пример 5. Удаление строк по условию

Следующий код показывает, как удалять строки в зависимости от определенных условий:

 #only keep rows where team is equal to 'A' or points is greater than 8
df %>%
  filter(column1 == ' A ' | column2 > 8)

  team points assists
1 to 4 1
2 A NA 3
3 C 9 2
4 C 9 2

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

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

Как выбрать столбцы по индексу с помощью dplyr
Как сортировать переменные по группам с помощью dplyr
Как заменить NA на Zero в dplyr

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

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