Oncostat / grstat

Statistical package for clinical research in GR
3 stars 0 forks source link

Feature: Ajouter une colonne "différence" à `ae_table_grade()` ? #12

Open DanChaltiel opened 1 month ago

DanChaltiel commented 1 month ago

Demande d'un IDMC: ajouter des p-values sur les descriptions pour identifier facilement les grandes différences. Réponse en accord avec le stat de l'IDMC : les p-values c'est mal, mais un effect-size pourquoi pas.

En pratique ça pourrait aussi être une option du genrecrosstable(effect=xxx), mais en l'état crosstable ne calcule qu'un effet par variable, et non par niveau (ce serait peut-être une feature intéressante cela-dit).

On pourrait implémenter quelque chose de ce genre, quitte à étendre as_flextable() :

library(grstat)
tm = grstat_example()
attach(tm, warn.conflicts=FALSE)

extract_pct = function(x) {
  str_extract(x, "\\((.*)%\\)", group=1) %>% 
    as.numeric() %>% 
    replace_na(0)
}

ae_table_grade(df_ae=tm$ae, df_enrol=tm$enrolres, arm="ARM") %>%
  mutate(Difference = extract_pct(Ctl)/100 - extract_pct(Trt)/100) %>% 
  flextable::as_flextable(header_show_n=TRUE) %>% 
  merge_v(part="header") %>% 
  mk_par(j="Difference", value=as_paragraph(as_chunk(as.numeric(Difference), formatter=fmt_pct))) %>% 
  bg(j="Difference", i=~abs(as.numeric(Difference))>0.1, bg="yellow")

image

Created on 2024-09-25 with reprex v2.1.0