Як видалити рядки за допомогою 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

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

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