Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: Display output in the order of the coded selected variables #1096

Open
3 tasks done
nsteed15 opened this issue Mar 6, 2024 · 1 comment
Open
3 tasks done
Labels
enhancement New feature or request sme

Comments

@nsteed15
Copy link
Contributor

nsteed15 commented Mar 6, 2024

Feature description

It would be nice if the selected variables in the summarize_vars argument would be displayed in the order that they are programmed. For example in this code below, I have selected c('SEX', 'COUNTRY', 'AGE','RACE') and I want the demographic table to be displayed in that order. But the order that is displayed is not in this order, it is displayed by the order of the variables in the choices argument, if that makes sense. Often studies want the ability to have a large choices selection and it doesn't make sense to order this list manually. So I want the demographic table to be in the order 'SEX', 'COUNTRY', 'AGE','RACE', but it is actually displayed in the order 'AGE', 'SEX', 'RACE', 'COUNTRY'.

library(shiny)
library(teal.widgets)
library(teal.modules.clinical)


get_fact_vars <- function(data) {
  fact_vars <- names(data)
  return(fact_vars)
}


cs <- choices_selected(
  choices = variable_choices('ADS', subset = get_fact_vars),
  selected = c('SEX', 'COUNTRY', 'AGE','RACE')
)

## Data reproducible code
data <- teal_data()
data <- within(data, {
  library(scda)
  ADSL <- synthetic_cdisc_dataset("latest", "adsl")
  
  # Include `EOSDY` and `DCSREAS` variables below because they contain missing data.
  stopifnot(
    any(is.na(ADSL$EOSDY)),
    any(is.na(ADSL$DCSREAS))
  )
})
datanames <- "ADSL"
datanames(data) <- datanames
join_keys(data) <- default_cdisc_join_keys[datanames]

## Setup App
app <- init(
  data = data,
  modules = modules(
    tm_t_summary(
      label = "Demographic Table",
      dataname = "ADSL",
      arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"),
      summarize_vars = cs,
      useNA = "ifany"
    )
  )
)

shinyApp(app$ui, app$server)
sessionInfo()
R version 4.3.0 (2023-04-21 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 11 x64 (build 22621)

Matrix products: default


locale:
[1] LC_COLLATE=English_Europe.utf8  LC_CTYPE=English_Europe.utf8   
[3] LC_MONETARY=English_Europe.utf8 LC_NUMERIC=C                   
[5] LC_TIME=English_Europe.utf8    

time zone: Europe/Berlin
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] teal_0.15.1.9003          teal.slice_0.5.0.9004     teal.data_0.5.0          
[4] teal.code_0.5.0.9001      shiny_1.8.0               teal.transform_0.5.0.9000
[7] teal.widgets_0.4.2.9005  

loaded via a namespace (and not attached):
 [1] jsonlite_1.8.8         dplyr_1.1.4            compiler_4.3.0        
 [4] promises_1.2.0.1       tidyselect_1.2.0       Rcpp_1.0.10           
 [7] jquerylib_0.1.4        later_1.3.1            fastmap_1.1.1         
[10] mime_0.12              R6_2.5.1               generics_0.1.3        
[13] backports_1.4.1        checkmate_2.3.1        tibble_3.2.1          
[16] logger_0.2.2           bslib_0.6.1            pillar_1.9.0          
[19] rlang_1.1.1            utf8_1.2.4             cachem_1.0.8          
[22] httpuv_1.6.11          sass_0.4.8             memoise_2.0.1         
[25] cli_3.6.1              magrittr_2.0.3         shinyWidgets_0.7.6    
[28] digest_0.6.33          rstudioapi_0.15.0      xtable_1.8-4          
[31] lifecycle_1.0.4        teal.logger_0.1.3.9007 vctrs_0.6.5           
[34] glue_1.6.2             fansi_1.0.6            tools_4.3.0           
[37] pkgconfig_2.0.3        ellipsis_0.3.2         htmltools_0.5.7    

Code of Conduct

  • I agree to follow this project's Code of Conduct.

Contribution Guidelines

  • I agree to follow this project's Contribution Guidelines.

Security Policy

  • I agree to follow this project's Security Policy.
@nsteed15 nsteed15 added the enhancement New feature or request label Mar 6, 2024
@m7pr
Copy link
Contributor

m7pr commented Mar 6, 2024

This is a follow-up after insightsengineering/teal.transform#205 where we discovered that order of the output can be also orchestrated by manually editing cs$choices, like

cs$choices[1:4] <- cs$choices[c(2, 4, 1, 3)]

@edelarua edelarua assigned edelarua and unassigned edelarua Mar 6, 2024
@donyunardi donyunardi removed the core label May 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request sme
Projects
None yet
Development

No branches or pull requests

5 participants