Вы можете использовать следующие методы для поиска уникальных строк в нескольких столбцах фрейма данных в 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