У меня есть проблема, похожая на ту, что я писал здесь:
Сравнение двух столбцов: логический- значение из столбца 1 также находится в столбце 2?
Однако данные представлены в несколько ином формате. Общая структура данных — это список в одном столбце фотографий, сделанных за 3-дневный период, и другой столбец фотографий, которые соответствуют фотографиям в столбце 1. Другая информация — это день, когда была сделана фотография, так что люди за каждый день взаимоисключающие — не более одной фотографии конкретного человека в день (т. е. «А» никогда не будет соответствовать «Б» в моем примере ниже, потому что они оба из дня 1).
photo <- c('A','B','C','D','E','F','G','H','I','J','K','K','L')
day <- c(1,1,1,1,2,2,2,3,3,3,3,3,3)
matching_photo <- c(NA,NA,NA,NA,NA,'A','B','E',NA,NA,'F','A','C')
DF <- data.frame(photo,day,matching_photo)
Выходные данные, которые я ищу, таковы:
serial.no <- c(1,2,3,4,5,6)
individuals <- c('A,F,K','B,G','C,L','D','E,H','I')
histories <- c('111','110','101','100','011','001')
finalDF <- data.frame(individuals,histories)
Который включает в себя серийный номер для идентификации человека (придуманный по ходу дела, так что просто начните с последовательного ряда с 1), список фотографий, соответствующих каждому человеку в столбце, и истории. Истории имеют двоичный формат, поэтому, если вас наблюдали в первый день, а не до третьего дня, ваша история будет «101». Но если бы вас наблюдали только во второй день, ваша история была бы «010».
Одна из проблем, с которыми я столкнулся с этим конкретным набором данных (по сравнению с проблемой, указанной выше), заключается в том, что если человека видят 3 дня подряд, в столбце фотографий есть две записи для этого человека («K» в мой пример выше), совпадающие фотографии обоих предыдущих дней ("A" и "F"). Я ценю любую оказанную помощь. Спасибо!