R: Как найти уникальные строки в нескольких столбцах


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

Метод 1: найти уникальные строки в нескольких столбцах (удалить другие столбцы)

df_unique <- unique(df[c('col1', 'col2')])

Способ 2: найти уникальные строки в нескольких столбцах (сохранить другие столбцы)

df_unique <- df[!duplicated(df[c('col1', 'col2')]),]

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

#create data frame
df <- data.frame(conf=c('East', 'East', 'East', 'West', 'West', 'West'),
 pos=c('G', 'G', 'F', 'G', 'F', 'F'),
 points=c(33, 28, 31, 39, 34, 40))

#view data frame
df

 conf pos points
1 East G 33
2 East G 28
3 East F 31
4 West G 39
5 West F 34
6 West F 40

Метод 1: найти уникальные строки в нескольких столбцах (удалить другие столбцы)

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

#find unique rows across conf and pos columns
df_unique <- unique(df[c('conf', 'pos')])

#view results
df_unique 

 conf pos
1 East G
3 East F
4 West G
5 West F

Результатом являются четыре строки, каждая из которых уникальна.

Также обратите внимание, что столбец с баллами был автоматически удален из результатов.

Способ 2: найти уникальные строки в нескольких столбцах (удалить другие столбцы)

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

#find unique rows across conf and pos columns
df_unique <- df[!duplicated(df[c('conf', 'pos')]),]

#view results
df_unique 

 conf pos points
1 East G 33
3 East F 31
4 West G 39
5 West F 34

Обратите внимание, что в столбцах conf и pos существуют только уникальные строки, а значения в столбце points сохраняются.

Важно отметить, что сохраняется только значение для первого уникального вхождения.

Например, были две строки, содержащие «Восток» и «G» в первых двух столбцах, но в окончательном фрейме данных было сохранено только значение баллов (33) для первого появления этой уникальной комбинации.

Точно так же были две строки, содержащие «Запад» и «F» в первых двух столбцах, но в окончательном фрейме данных было сохранено только значение баллов (34) для первого появления этой уникальной комбинации.

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

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

Как найти уникальные значения в столбце в R
Как подсчитать уникальные значения по группе в R
Как фильтровать уникальные значения с помощью dplyr

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