У меня есть отметка, для которой я хочу удалить строки с дублирующимися значениями, но с предпочтением для удаления из самой большой группы .
Пример данных:
(tb <- tibble(group = rep(LETTERS[1:3], times = 3:1),
value = c(4,2,1,1,2,1)))
# A tibble: 6 x 2
group value
<chr> <dbl>
1 A 4
2 A 2
3 A 1
4 B 1
5 B 2
6 C 1
Здесь значения 1 и 2 дублируются.Для случая 1 я хочу удалить его из 2 больших групп (A и B) и сохранить значение для C. Аналогично, строки для значения 2 должны быть удалены из группы A. (Когда размеры группы связаны, не имеет значения, из какой группы удаляется строка.)
Желаемый результат
# A tibble: 3 x 2
group value
<chr> <dbl>
1 A 4
2 B 2
3 C 1
Использование tb %>% filter(!duplicated(value))
работает для удаления дубликатов, но непринять во внимание размеры групп:
Фактический результат
# A tibble: 3 x 2
group value
<chr> <dbl>
1 A 4
2 A 2
3 A 1
Существует ли (простой) переход на другую сторону, чтобы учитывать размеры групп при удалении дубликатов?