Merci pour l'idée, je vais creuser du côté de tidyr::complete() Pour le point 2, c'est ce que je craignais. J'ai tenté de m'inspirer de votre solution en ajoutant les autres variables dans le j : setDT(db)[ j = list(.N, Day = first(Day), Hour = first(Hour), Tarsus = first(Tarsus), Site = first(Site)...