elong0527 / r4csr

R for Clinical Study Report and Submission
https://r4csr.org/
Other
69 stars 31 forks source link

Customize data frame and tibble printing methods #124

Closed nanxstats closed 7 months ago

nanxstats commented 7 months ago

Closes #115.

This PR customizes the data frame and tibble printing methods in _common.R.

Take the code chunks in the tlf-overview chapter as an example.

Printing data frames

Previous

r2rtf_adae |>
  select(USUBJID, TRTA, AEDECOD) |>
  head(4)
#>       USUBJID    TRTA                   AEDECOD
#> 1 01-701-1015 Placebo APPLICATION SITE ERYTHEMA
#> 2 01-701-1015 Placebo APPLICATION SITE PRURITUS
#> 3 01-701-1015 Placebo                 DIARRHOEA
#> 4 01-701-1023 Placebo                  ERYTHEMA

Now

r2rtf_adae |> select(USUBJID, TRTA, AEDECOD)
#>       USUBJID    TRTA                   AEDECOD
#> 1 01-701-1015 Placebo APPLICATION SITE ERYTHEMA
#> 2 01-701-1015 Placebo APPLICATION SITE PRURITUS
#> 3 01-701-1015 Placebo                 DIARRHOEA
#> 4 01-701-1023 Placebo                  ERYTHEMA
#> # ℹ 1187 more rows

Printing tibbles

Previous

tbl <- r2rtf_adae %>%
  count(TRTA, AEDECOD) %>%
  pivot_wider(names_from = TRTA, values_from = n, values_fill = 0)

tbl %>% head(4)
#> # A tibble: 4 × 4
#>   AEDECOD        Placebo `Xanomeline High Dose` `Xanomeline Low Dose`
#>   <chr>            <int>                  <int>                 <int>
#> 1 ABDOMINAL PAIN       1                      2                     3
#> 2 AGITATION            2                      1                     2
#> 3 ALOPECIA             1                      0                     0
#> 4 ANXIETY              2                      0                     4

Now

tbl <- r2rtf_adae %>%
  count(TRTA, AEDECOD) %>%
  pivot_wider(names_from = TRTA, values_from = n, values_fill = 0)

tbl
#> # A tibble: 242 × 4
#>   AEDECOD        Placebo `Xanomeline High Dose` `Xanomeline Low Dose`
#>   <chr>            <int>                  <int>                 <int>
#> 1 ABDOMINAL PAIN       1                      2                     3
#> 2 AGITATION            2                      1                     2
#> 3 ALOPECIA             1                      0                     0
#> 4 ANXIETY              2                      0                     4
#> # ℹ 238 more rows