Remove `display_soc_toggle =...` and `display_diff_toggle=...` in `ae_forestly()`?

Cerrado
#185 0 comentarios 0 reacciones 1 asignado Ver en GitHub

@yihui ya está trabajando en esto.

Desde el 4/11/2026.

  • #186 de @yihui — fusionado

Evaluación

Este issue todavía no se ha evaluado.

Descripción

Motivated example

Observation: columns of count (i.e., the 'n" column) and the percentages columns (i.e., the "%" column) are displayed before the "AE proportion (%)" and "risk difference (%) + 95% CI vs. Low Dose"

Image

Expection: the "n" and "%" columns should be displayed at the end of the table

library(metalite)
library(forestly)

adsl <- forestly_adsl
adae <- forestly_adae

adsl$TRTA <- factor(forestly_adsl$TRT01A,
  levels = c("Xanomeline Low Dose", "Placebo"),
  labels = c("Low Dose", "Placebo")
)
adae$TRTA <- factor(forestly_adae$TRTA,
  levels = c("Xanomeline Low Dose", "Placebo"),
  labels = c("Low Dose", "Placebo")
)

meta <- meta_adam(population = adsl, observation = adae) |>
  define_plan(plan = plan(
    analysis = "ae_forestly",
    population = "apat",
    observation = "apat",
    parameter = "any;drug-related"
  )) |>
  define_analysis(name = "ae_forestly", label = "Interactive Forest Plot") |>
  define_population(
    name = "apat", group = "TRTA", id = "USUBJID",
    subset = SAFFL == "Y", label = "All Patient as Treated"
  ) |>
  define_observation(
    name = "apat", group = "TRTA",
    subset = SAFFL == "Y", label = "All Patient as Treated"
  ) |>
  define_parameter(
    name = "any",
    subset = NULL,
    label = "Any AEs",
    var = "AEDECOD", soc = "AEBODSYS"
  ) |>
  define_parameter(
    name = "drug-related",
    subset = toupper(AREL) == "RELATED",
    label = "Drug-related AEs",
    var = "AEDECOD", soc = "AEBODSYS"
  ) |>
  meta_build()

# Analysis Execution## Generate Interactive Forest Plot
meta |>  
  prepare_ae_forestly(components = "soc",    
                      population = "apat",    
                      observation = "apat",    
                      reference_group = 1,
                     parameter = "any;drug-related"  ) |>  
  format_ae_forestly(display = c("fig_prop", "fig_diff", "n", "prop" )) |>  
  ae_forestly(display_soc_toggle = FALSE,
              display_diff_toggle = TRUE,
              filter = c("prop", "n"),
              filter_range = c(0,20),
              width = 1400)

Root cause investigated by GPT6.1 Sol

This is a column-ordering bug in the installed packages, triggered by display_soc_toggle = FALSE.

Here’s what happens:

  1. forestly creates the numeric n and % columns, then adds the two plots.
  2. It tries to move the plots before the numeric columns using:
lt::lt_move(x, c("prop_fig", "diff_fig"), after = "soc_name")
  1. But display_soc_toggle = FALSE hides soc_name. The lt renderer removes hidden columns before applying the move. With the anchor missing, it silently skips the move.
    Consequently, n and % stay before the plots. I reproduced this behavior using your installed forestly 0.1.7 and lt 0.4.49.

The order of entries in display = c("fig_prop", "fig_diff", "n", "prop") does not control the column order. The robust package fix is to anchor the move after the always-visible "name" column instead of "soc_name".

Question

As we have "Show/Hide Columns", shall we still keep the arguments of display_soc_toggle =... and display_diff_toggle=... in ae_forestly()?

Lenguaje dominante
R
Estrellas
22
Forks
6
Merge medio
1 d 17 h
PR fusionados (30 d)
7

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Merck/forestly

Todos los issues de Merck/forestly

Issues similares

Más issues de R

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.