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


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

Метод 1: используйте базу 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
1 A Guard
2 A Guard
3 A Forward
4 B Guard
5 B Center
6 B Center

Пример 1. Удаление повторяющихся строк с помощью базы R

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

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

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

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

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

 team position
1 A Guard
4 B Guard

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

В следующем коде показано, как удалить повторяющиеся строки из фрейма данных с помощью функции Different () из пакета dplyr :

library(dplyr)

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

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

Обратите внимание, что аргумент .keep_all указывает R сохранить все столбцы из исходного фрейма данных.

В следующем коде показано, как использовать функцию different() для удаления повторяющихся строк из определенных столбцов фрейма данных:

library(dplyr)

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

 team position
1 A Guard
2 B Guard

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

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

Как удалить строки в R на основе условия
Как удалить строки с NA в одном конкретном столбце в R

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