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


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

1. Удалите все строки с NA

df %>%
 na. 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 A 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 %>%
 na. omit ()

 team points assists
1 A 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 (points))

 team points assists
1 A 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 A 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 A 4 1
2 A NA 3
3 C 9 2
4 C 9 2

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

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

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.