Як видалити повторювані рядки в r (з прикладами)


Щоб видалити повторювані рядки з кадру даних у R, можна скористатися одним із двох методів:

Спосіб 1: Використовуйте Base R

 #remove duplicate rows across entire data frame
df[ ! duplicated(df), ]

#remove duplicate rows across specific columns of data frame
df[ ! duplicated(df[c(' var1 ')]), ]

Спосіб 2: використовуйте dplyr

 #remove duplicate rows across entire data frame 
df %>%
  distinct(.keep_all = TRUE )

#remove duplicate rows across specific columns of data frame
df %>%
  distinct(var1, .keep_all = TRUE )

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

 #define data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 position=c('Guard', 'Guard', 'Forward', 'Guard', 'Center', 'Center'))

#view data frame
df

  team position
1A Guard
2 A Guard
3 A Forward
4 B Guard
5B Center
6B Center

Приклад 1: видаліть повторювані рядки за допомогою Base R

Наступний код показує, як видалити повторювані рядки з кадру даних за допомогою базових функцій R:

 #remove duplicate rows from data frame
df[ ! duplicated(df), ]

  team position
1A Guard
3 A Forward
4 B Guard
5B Center

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

 #remove rows where there are duplicates in the 'team' column
df[ ! duplicated(df[c(' team ')]), ]

  team position
1A Guard
4 B Guard

Приклад 2: видаліть повторювані рядки за допомогою dplyr

Наступний код показує, як видалити повторювані рядки з кадру даних за допомогою функції distinct() із пакета dplyr :

 library (dplyr)

#remove duplicate rows from data frame
df %>%
  distinct(.keep_all = TRUE )

  team position
1A Guard
2 A Forward
3 B Guard
4B Center

Зауважте, що аргумент .keep_all повідомляє R зберігати всі стовпці у вихідному кадрі даних.

У наступному коді показано, як використовувати функцію distinct() для видалення повторюваних рядків із певних стовпців у фреймі даних:

 library (dplyr)

#remove duplicate rows from data frame
df %>%
  distinct(team, .keep_all = TRUE )

  team position
1A Guard
2 B Guard

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

У наступних посібниках пояснюється, як виконувати інші поширені функції в R:

Як видалити рядки в R на основі умови
Як видалити рядки з NA в певному стовпці в R

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

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