Tenho dados de armadilhas fotográficas onde quero remover detecções de animais potencialmente duplicadas. Estou definindo o intervalo como 60min (1 hora) para que qualquer indivíduo detectado da mesma espécie na mesma câmera seja o mesmo indivíduo se for detectado novamente dentro de <60min. Meus dados são coletados em vários blocos com vários locais dentro de um bloco.
#Data example:
Block<-c("a","a","a","a","a","b","b","b","b","b") #2 block
Site<-c("p1","p1","p2","p2","p2","p1","p1","p1","p2","p2") #two sites
Species<-c("c","c","c","c","e","d","d","c","c","c")
datetime<-c("2021-03-29 05:45:00","2021-03-29 06:40:00","2021-03-30 05:45:00","2021-03-30 07:45:00","2021-03-29 09:45:00","2021-03-29 05:45:00","2021-03-29 05:55:00","2021-03-29 08:45:00","2021-03-29 10:45:00","2021-03-30 10:59:00")
df<-data.frame(Block, Site, Species, datetime)
#what I want for the output:
Block Site Species datetime
1 a p1 c 2021-03-29 05:45:00
2 a p2 c 2021-03-30 05:45:00
3 a p2 c 2021-03-30 07:45:00
4 a p2 e 2021-03-29 09:45:00
5 b p1 d 2021-03-29 05:45:00
6 b p1 c 2021-03-29 08:45:00
7 b p2 c 2021-03-29 10:45:00
8 b p2 c 2021-03-30 10:59:00
A parte complicada, pelo menos para mim, é que preciso remover duplicatas de Bloco/Site/Espécie que aparecem com intervalo de 1 hora entre si (não posso simplesmente dizer para manter a primeira dentro de um período de uma hora do dia).
Obrigado pela ajuda.
Usando
diff
e entãofilter
por set intv