При удалении строк, которые являются дубликатами в одном конкретном столбце, возможно ли предпочтительно сохранить одну из повторяющихся строк на основе второго и третьего столбцов?
Рассмотрим следующий пример:
# Example dataframe.
df <- data.frame(col.1 = c(1, 1, 1, 2, 2, 2, 3, 3),
col.2 = c('a', 'b', 'b', 'a', 'b', 'c', 'a', 'a'),
col.3 = c('b', 'c', 'a', 'b', 'a', 'b', 'c', 'b'))
# Output
col.1 col.2 col.3
1 a b
1 b c
1 b a
2 a b
2 b a
2 c b
3 a c
3 a b
Я хотел бы удалить строки, которые являются дубликатами в col.1
, при этом предпочтительно сохраняя строки, которые имеют col.2 == 'b'
и col.3 == 'c'
.Совпадение в col.2
и col.3
является наиболее предпочтительным, в то время как одиночное совпадение в col.2
предпочтительнее, чем одно совпадение в col.3
, а совпадение только в одном столбце предпочтительнее, чем полное отсутствие совпадений.Для повторяющихся строк без совпадений может быть сохранена любая из повторяющихся строк.
В данном примере результирующий кадр данных будет выглядеть следующим образом:
# Output.
col.1 col.2 col.3
1 b c
2 b a
3 a c
Спасибовы!