Add functions acting on groups
Opened this issue · 0 comments
Context / besoin
Aller plus loin avec des linelists avec plusieurs tables de données liées. Pour le moment on a VALUES_OF, pour récupérer une valeur pour un individu, mais on ne peut pas aggréger des valeurs pour un groupe (par exemple, un patient).
Exemple de la linelist ebola :
Dans la vieille linelist les tests sont rentrés en format large dans la feuille principale : Il peut y avoir un test par patient... ou 8 ou 30... on rajoute des colonnes au fur et à mesure (un test = 4 ou 5 colonnes !). C'est l'enfer, ça va parce qu'on a des boutons pour collapser les tests mais bon.
Si je traduit ce setup dans OBT, je trouve naturel de faire :
- une feuille principale, avec les données des patients
- une seconde feuille avec les données des tests en format long.
C'est un cas où splitter les données entre deux feuilles c'est vraiment super. Par contre, c'est pénible quand on regarde un patient donné de devoir jongler entre deux feuilles, avec les filtres pour savoir où ça en est au niveau des tests.
Describe the solution you'd like
En gros la fonctionalité group_by()
+ summarise()
ou mutate()
et aussi un équivalent de any()
par groupe...
Ça nous permettrait d'extraire par exemple :
- nombre de tests effectués
- date du dernier test
- résultat du dernier test
- nombre de tests positifs
- max CT value
Ce qui permettrait de résumer un peu la situation des tests pour un patient en quelques colonnes. Et si l'utilisateur veut plus de détail, il peut aller sur la feuille secondaire.
Je pense que ça serait hyper puissant.