Я попытался использовать код в ответе выше после некоторой очистки данных. Однако лучше всего получился пошаговый ответ.
1) Объедините каждое значение df с когортой, а затем поднабор, чтобы оставить только одну собаку, использующую разных. Например, с df.1_2:
df.1_2_join <- left_join(df.1_2, cohort, by="DOGID")
df.1_2_join <- df.1_2_join[order(df.1_2_join$SEQUENCE),]
df.1_2_join <- df.1_2_join %>% distinct(DOGID, .keep_all = TRUE)
2), чтобы все соответствующие имена столбцов совпадали.
3) сделать full_join
по всем столбцам
4) упорядочить полный data.frame по Sequence и снова использовать Different для удаления дублированных идентификаторов
В процессе я также узнал, что duplicated2
- это полезная функция для записи списка всех дублированных строк в кадре данных,не только их 2,3 или более внешности. Я использовал это, чтобы проверить и убедиться, что все идентификаторы не были продублированы и имели правильную информацию.