Skip to content

ae_table_soc(): grouper les grades #53

@DanChaltiel

Description

@DanChaltiel

Décrire chaque grade séparément rend les tables plus grandes et la lecture plus lourde.
Il faudrait ajouter un argument ae_groups pour pouvoir grouper les grades.

Suggestion d'interface:

db$ae %>% 
  ae_table_soc(df_enrol=db$enrolres, arm="ARM", term="AETERM", total=FALSE, variant="sup",
               ae_groups=list("Any grade"=1:5, "Grade 1-2"=1:2, "Grade ≥3"=3:5)

Résultat attendu

Ici j'utilise rowSums() en post-prod mais ce n'est pas très propre et ça ne marchera que pour le variant sup.
Il faudra trouver une alternative pour la fonction en interne.

library(tidyverse)
library(grstat)
library(flextable)
db = grstat_example(N=300)
n_min = 10

db$ae %>% 
  # filter(AEREL %in% c("xxx", "xxx", "xxxx")) %>% 
  ae_table_soc(df_enrol=db$enrolres, arm="ARM", term="AETERM", total=FALSE, variant="sup") %>% 
  mutate(
    tot = rowSums(cbind(as.numeric(str_extract(control_G1, "\\d*")),
                        as.numeric(str_extract(treatment_G1, "\\d*"))), na.rm = TRUE), 
    .after=soc,
    term = fct_reorder(term, tot, .fun=sum)
  ) %>% 
  filter(term!=0, tot>n_min) %>%
  select(-tot) %>% 
  arrange(desc(term)) %>% 
  as_flextable() %>% 
  set_header_labels(term="CTCAE v4.0 Term (treatment-related adverse event)",
                    control_G1="Any grade", treatment_G1="Any grade", 
                    control_G3="Grade ≥3", treatment_G3="Grade ≥3") %>% 
  delete_columns(1) %>% 
  delete_columns(c(3, 5:7, 9, 11:13)) %>% 
  merge_h(i=1, part="header")

Image

Created on 2025-02-05 with reprex v2.1.1

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions