Biomarker Analysis Catalog - Dev
  • Dev
    • Stable
  1. Graphs
  2. RG
  3. RG1
  4. RG1C
  • Index

  • Tables
    • CPMT
      • CPMT1
      • CPMT2
        • CPMT2A
      • CPMT3
    • DT
      • DT1
        • DT1A
        • DT1B
        • DT1C
      • DT2
        • DT2A
    • TET
      • TET1
        • TET1A

  • Graphs
    • AG
      • AG1
    • DG
      • DG1
        • DG1A
        • DG1B
      • DG2
      • DG3
        • DG3A
      • DG4
    • KG
      • KG1
        • KG1A
        • KG1B
      • KG2
        • KG2A
      • KG3
      • KG4
        • KG4A
        • KG4B
      • KG5
        • KG5A
        • KG5B
    • RFG
      • RFG1
        • RFG1A
      • RFG2
        • RFG2A
        • RFG2B
        • RFG2C
      • RFG3
    • RG
      • RG1
        • RG1A
        • RG1B
        • RG1C
      • RG2
        • RG2A
      • RG3
        • RG3A
        • RG3B
    • SPG
      • SPG1
      • SPG2
    • RNAG
      • RNAG1
      • RNAG2
      • RNAG3
      • RNAG4
      • RNAG5
      • RNAG6
      • RNAG7
      • RNAG8
      • RNAG9
      • RNAG10
    • SFG
      • SFG1
        • SFG1A
        • SFG1B
      • SFG2
        • SFG2A
        • SFG2B
        • SFG2C
        • SFG2D
      • SFG3
        • SFG3A
      • SFG4
      • SFG5
        • SFG5A
        • SFG5B
        • SFG5C
      • SFG6
        • SFG6A
        • SFG6B
        • SFG6C
  1. Graphs
  2. RG
  3. RG1
  4. RG1C

RG1C

Horizontal Response Graph for Overall Population

RG

  • Setup
  • Plot
  • Session Info

We will use the cadrs data set from the random.cdisc.data package to create the response plots. We transform the response variable into an ordered factor to ensure that the response labels are ordered correctly and a sequential color scheme is used in the graph. We select Best Confirmed Overall Response by Investigator to evaluate response. Finally, we select patients with measurable disease at baseline (BMEASIFL == "Y") as response evaluable patients.

For ggplot() used in all analyses, we add by = BMEASIFL in the aesthetics to support the calculation of proportions using geom_text(stat = "prop").

Code
library(tern)
library(ggplot2.utils)
library(dplyr)

adrs <- random.cdisc.data::cadrs %>%
  df_explicit_na() %>%
  mutate(AVALC = ordered(AVALC, levels = c("<Missing>", "NE", "PD", "SD", "PR", "CR"))) %>%
  filter(PARAMCD == "BESRSPI", BMEASIFL == "Y")

The coord_flip() function from ggplot2 can be used to exchange the x and y coordinates, i.e. plot horizontally.

Code
adrs <- adrs %>%
  mutate(
    AVALC_BIN = fct_collapse_only(
      AVALC,
      Yes = c("CR", "PR"),
      No = c("PD", "SD", "NE", "<Missing>")
    )
  )
graph <- ggplot(adrs, aes(BMEASIFL, fill = AVALC_BIN, by = BMEASIFL)) +
  geom_bar(position = "fill") +
  geom_text(stat = "prop", position = position_fill(.5)) +
  scale_y_continuous(labels = scales::percent) +
  ylab("%")
graph +
  coord_flip()

Code
sessionInfo()
R version 4.4.1 (2024-06-14)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 22.04.4 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so;  LAPACK version 3.10.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

time zone: Etc/UTC
tzcode source: system (glibc)

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

other attached packages:
[1] dplyr_1.1.4           ggplot2.utils_0.3.2   ggplot2_3.5.1        
[4] tern_0.9.5.9022       rtables_0.6.9.9014    magrittr_2.0.3       
[7] formatters_0.5.9.9001

loaded via a namespace (and not attached):
 [1] utf8_1.2.4                    generics_0.1.3               
 [3] tidyr_1.3.1                   EnvStats_3.0.0               
 [5] stringi_1.8.4                 lattice_0.22-6               
 [7] digest_0.6.37                 evaluate_0.24.0              
 [9] grid_4.4.1                    fastmap_1.2.0                
[11] jsonlite_1.8.8                Matrix_1.7-0                 
[13] backports_1.5.0               survival_3.7-0               
[15] purrr_1.0.2                   fansi_1.0.6                  
[17] viridisLite_0.4.2             scales_1.3.0                 
[19] codetools_0.2-20              Rdpack_2.6.1                 
[21] cli_3.6.3                     ggpp_0.5.8-1                 
[23] rlang_1.1.4                   rbibutils_2.2.16             
[25] munsell_0.5.1                 splines_4.4.1                
[27] withr_3.0.1                   yaml_2.3.10                  
[29] tools_4.4.1                   polynom_1.4-1                
[31] checkmate_2.3.2               colorspace_2.1-1             
[33] forcats_1.0.0                 ggstats_0.6.0                
[35] broom_1.0.6                   vctrs_0.6.5                  
[37] R6_2.5.1                      lifecycle_1.0.4              
[39] stringr_1.5.1                 htmlwidgets_1.6.4            
[41] MASS_7.3-61                   pkgconfig_2.0.3              
[43] pillar_1.9.0                  gtable_0.3.5                 
[45] glue_1.7.0                    xfun_0.47                    
[47] tibble_3.2.1                  tidyselect_1.2.1             
[49] knitr_1.48                    farver_2.1.2                 
[51] htmltools_0.5.8.1             labeling_0.4.3               
[53] rmarkdown_2.28                random.cdisc.data_0.3.15.9009
[55] compiler_4.4.1               

Reuse

Copyright 2023, Hoffmann-La Roche Ltd.
RG1B
RG2
Source Code
---
title: RG1C
subtitle: Horizontal Response Graph for Overall Population
categories: [RG]
---

------------------------------------------------------------------------

::: panel-tabset
{{< include setup.qmd >}}

## Plot

The `coord_flip()` function from `ggplot2` can be used to exchange the `x` and `y` coordinates, i.e. plot horizontally.

```{r}
adrs <- adrs %>%
  mutate(
    AVALC_BIN = fct_collapse_only(
      AVALC,
      Yes = c("CR", "PR"),
      No = c("PD", "SD", "NE", "<Missing>")
    )
  )
graph <- ggplot(adrs, aes(BMEASIFL, fill = AVALC_BIN, by = BMEASIFL)) +
  geom_bar(position = "fill") +
  geom_text(stat = "prop", position = position_fill(.5)) +
  scale_y_continuous(labels = scales::percent) +
  ylab("%")
graph +
  coord_flip()
```

{{< include ../../misc/session_info.qmd >}}
:::

Made with ❤️ by the Statistical Engineering Team StatisticalEngineering

  • License

  • Edit this page
  • Report an issue
Cookie Preferences