Benjamin Moran
Benjamin Moran

Reputation: 141

gtsummary tbl_merge with multiple columns of variable length

I am doing a meta-analysis and would like to use gtsummary for Table 1 (Description of the Included Studies). I would like to have each column be a detail of the study (e.g. Authors, Intervention, Number, etc). Within this MA, there are some studies that have more than 2 interventions, so the rows won't be equal among studies (i.e. first column has 1 row per study, second column variable rows per study, etc).

Here is a dataset for the problem that matches my own dataset.

library(tidyverse)

#Create dataset
MA <- 
  tibble(
    Study = c("Study 1", "Study 2"),
    Intervention1 = c("Placebo", "Control"),
    Intervention2 = c("Walking", "Running"),
    Intervention3 = c("Running", NA),
    Number_Int1 = c(21, 19),
    Number_Int2 = c(19, 20),
    Number_Int3 = c(20, NA)
  )

Created on 2022-06-27 by the reprex package (v2.0.1)

I've tried to use tbl_summary and tbl_merge to generate a summary table, but to no avail.

Here is what I would like the table to look like:

enter image description here

Any help would be appreciated.

Ben

Upvotes: 1

Views: 467

Answers (1)

Benjamin Moran
Benjamin Moran

Reputation: 141

I've managed to find a solution using the gt package. Here is the code:

MA %>% pivot_longer(
  cols = !Study,
  names_to = c(".value", ".value"),
  names_pattern = "(.)(.)",
  values_drop_na = TRUE
  ) %>%
  rename(Intervention = In) %>% 
  rename(Number = Nu) %>% 
  gt(groupname_col = "Study") %>% 
  tab_stubhead(label = "Study") %>% 
  tab_options(row_group.as_column = TRUE)

This gives the following output table:

enter image description here

If anyone has any solutions using the gtsummary package, that'd be great.

Thanks,

Ben

Upvotes: 0

Related Questions