The baseline characteristic analysis aims to provide tables to summarize details of participants. The development of baseline characteristic analysis involves functions:
prepare_base_char: prepare analysis raw datasets.format_base_char: prepare analysis outdata with proper
format.rtf_base_char: transfer output dataset to RTF
table.adsl <- r2rtf::r2rtf_adsl
adsl$TRTA <- adsl$TRT01A
adsl$TRTA <- factor(
  adsl$TRTA,
  levels = c("Placebo", "Xanomeline Low Dose", "Xanomeline High Dose"),
  labels = c("Placebo", "Low Dose", "High Dose")
)meta <- meta_sl(
  dataset_population = adsl,
  population_term = "apat",
  parameter_term = "age;gender;race",
  parameter_var = "AGE^AGEGR1;SEX;RACE",
  treatment_group = "TRTA"
)## ADaM metadata: 
##    .$data_population     Population data with 254 subjects 
##    .$data_observation    Observation data with 254 records 
##    .$plan    Analysis plan with 1 plans 
## 
## 
##   Analysis population type:
##     name        id  group
## 1 'apat' 'USUBJID' 'TRTA'
##                                                                                                                                                                                                                                                                                                                                                                                                                    var
## 1 STUDYID, USUBJID, SUBJID, SITEID, SITEGR1, ARM, TRT01P, TRT01PN, TRT01A, TRT01AN, TRTSDT, TRTEDT, TRTDUR, AVGDD, CUMDOSE, AGE, AGEGR1, AGEGR1N, AGEU, RACE, RACEN, SEX, ETHNIC, SAFFL, ITTFL, EFFFL, COMP8FL, COMP16FL, COMP24FL, DISCONFL, DSRAEFL, DTHFL, BMIBL, BMIBLGR1, HEIGHTBL, WEIGHTBL, EDUCLVL, DISONSDT, DURDIS, DURDSGR1, VISIT1DT, RFSTDTC, RFENDTC, VISNUMEN, RFENDT, DCDECOD, DCREASCD, MMSETOT, TRTA
##         subset                         label
## 1 SAFFL == 'Y' 'All Participants as Treated'
## 
## 
##   Analysis observation type:
##     name        id  group
## 1 'apat' 'USUBJID' 'TRTA'
##                                                                                                                                                                                                                                                                                                                                                                                                                    var
## 1 STUDYID, USUBJID, SUBJID, SITEID, SITEGR1, ARM, TRT01P, TRT01PN, TRT01A, TRT01AN, TRTSDT, TRTEDT, TRTDUR, AVGDD, CUMDOSE, AGE, AGEGR1, AGEGR1N, AGEU, RACE, RACEN, SEX, ETHNIC, SAFFL, ITTFL, EFFFL, COMP8FL, COMP16FL, COMP24FL, DISCONFL, DSRAEFL, DTHFL, BMIBL, BMIBLGR1, HEIGHTBL, WEIGHTBL, EDUCLVL, DISONSDT, DURDIS, DURDSGR1, VISIT1DT, RFSTDTC, RFENDTC, VISNUMEN, RFENDT, DCDECOD, DCREASCD, MMSETOT, TRTA
##         subset label
## 1 SAFFL == 'Y'    ''
## 
## 
##   Analysis parameter type:
##       name  label subset
## 1    'age'  'Age'       
## 2 'gender'  'Sex'       
## 3   'race' 'Race'       
## 
## 
##   Analysis function:
##          name label
## 1 'base_char'    ''The input of the function prepare_base_char() is a
meta object created by the metalite package.
## List of 14
##  $ meta           :List of 7
##  $ population     : chr "apat"
##  $ observation    : chr "apat"
##  $ parameter      : chr "age;gender;race"
##  $ n              :'data.frame': 1 obs. of  6 variables:
##  $ order          : NULL
##  $ group          : chr "TRTA"
##  $ reference_group: NULL
##  $ char_n         :List of 3
##  $ char_var       : chr [1:3] "AGE" "SEX" "RACE"
##  $ char_prop      :List of 3
##  $ var_type       :List of 3
##  $ group_label    : Factor w/ 3 levels "Placebo","Low Dose",..: 1 3 2
##  $ analysis       : chr "base_char"##                         name n_1 n_2 n_3 n_9999 var_label
## 1 Participants in population  86  84  84    254     -----## [[1]]
##        name        Placebo Low Dose   High Dose    Total var_label
## 1     65-80             42       47          55      144       Age
## 2       <65             14        8          11       33       Age
## 3       >80             30       29          18       77       Age
## 4      <NA>           <NA>     <NA>        <NA>     <NA>       Age
## 5      Mean           75.2     75.7        74.4     75.1       Age
## 6        SD            8.6      8.3         7.9      8.2       Age
## 7        SE            0.9      0.9         0.9      0.5       Age
## 8    Median           76.0     77.5        76.0     77.0       Age
## 9       Min           52.0     51.0        56.0     51.0       Age
## 10      Max           89.0     88.0        88.0     89.0       Age
## 11 Q1 to Q3 69.25 to 81.75 71 to 82 70.75 to 80 70 to 81       Age
## 12    Range       52 to 89 51 to 88    56 to 88 51 to 89       Age
## 
## [[2]]
##   name Placebo Low Dose High Dose Total var_label
## 1    F      53       50        40   143       Sex
## 2    M      33       34        44   111       Sex
## 
## [[3]]
##                               name Placebo Low Dose High Dose Total var_label
## 1 AMERICAN INDIAN OR ALASKA NATIVE       0        0         1     1      Race
## 2        BLACK OR AFRICAN AMERICAN       8        6         9    23      Race
## 3                            WHITE      78       78        74   230      Race## [1] "AGE"  "SEX"  "RACE"## [[1]]
##        name  Placebo Low Dose High Dose    Total var_label
## 1     65-80 48.83721 55.95238  65.47619 56.69291       Age
## 2       <65 16.27907  9.52381  13.09524 12.99213       Age
## 3       >80 34.88372 34.52381  21.42857 30.31496       Age
## 4      <NA>       NA       NA        NA       NA       Age
## 5      Mean       NA       NA        NA       NA       Age
## 6        SD       NA       NA        NA       NA       Age
## 7        SE       NA       NA        NA       NA       Age
## 8    Median       NA       NA        NA       NA       Age
## 9       Min       NA       NA        NA       NA       Age
## 10      Max       NA       NA        NA       NA       Age
## 11 Q1 to Q3       NA       NA        NA       NA       Age
## 12    Range       NA       NA        NA       NA       Age
## 
## [[2]]
##   name  Placebo Low Dose High Dose    Total var_label
## 1    F 61.62791 59.52381  47.61905 56.29921       Sex
## 2    M 38.37209 40.47619  52.38095 43.70079       Sex
## 
## [[3]]
##                               name   Placebo  Low Dose High Dose      Total
## 1 AMERICAN INDIAN OR ALASKA NATIVE  0.000000  0.000000  1.190476  0.3937008
## 2        BLACK OR AFRICAN AMERICAN  9.302326  7.142857 10.714286  9.0551181
## 3                            WHITE 90.697674 92.857143 88.095238 90.5511811
##   var_label
## 1      Race
## 2      Race
## 3      Raceformat_base_char to prepare analysis dataset before
generate RTF output
##                                name            n_1     p_1      n_2     p_2
## 1        Participants in population             86    <NA>       84    <NA>
## 2                             65-80             42 (48.84)       47 (55.95)
## 3                               <65             14 (16.28)        8  (9.52)
## 4                               >80             30 (34.88)       29 (34.52)
## 5                              <NA>           <NA>    <NA>     <NA>    <NA>
## 6                              Mean           75.2    <NA>     75.7    <NA>
## 7                                SD            8.6    <NA>      8.3    <NA>
## 8                                SE            0.9    <NA>      0.9    <NA>
## 9                            Median           76.0    <NA>     77.5    <NA>
## 10                         Q1 to Q3 69.25 to 81.75    <NA> 71 to 82    <NA>
## 11                            Range       52 to 89    <NA> 51 to 88    <NA>
## 12                                F             53 (61.63)       50 (59.52)
## 13                                M             33 (38.37)       34 (40.48)
## 14 AMERICAN INDIAN OR ALASKA NATIVE              0  (0.00)        0  (0.00)
## 15        BLACK OR AFRICAN AMERICAN              8  (9.30)        6  (7.14)
## 16                            WHITE             78 (90.70)       78 (92.86)
##            n_3     p_3   n_9999  p_9999 var_label
## 1           84    <NA>      254    <NA>     -----
## 2           55 (65.48)      144 (56.69)       Age
## 3           11 (13.10)       33 (12.99)       Age
## 4           18 (21.43)       77 (30.31)       Age
## 5         <NA>    <NA>     <NA>    <NA>       Age
## 6         74.4    <NA>     75.1    <NA>       Age
## 7          7.9    <NA>      8.2    <NA>       Age
## 8          0.9    <NA>      0.5    <NA>       Age
## 9         76.0    <NA>     77.0    <NA>       Age
## 10 70.75 to 80    <NA> 70 to 81    <NA>       Age
## 11    56 to 88    <NA> 51 to 89    <NA>       Age
## 12          40 (47.62)      143 (56.30)       Sex
## 13          44 (52.38)      111 (43.70)       Sex
## 14           1  (1.19)        1  (0.39)      Race
## 15           9 (10.71)       23  (9.06)      Race
## 16          74 (88.10)      230 (90.55)      Racertf_base_char to generate RTF output
outdata |> rtf_base_char(
  source = "Source: [CDISCpilot: adam-adsl]",
  path_outdata = tempfile(fileext = ".Rdata"),
  path_outtable = "outtable/base0char.rtf"
)## The outdata is saved in/rtmp/RtmpRzGgqz/file2a3c75468f17c7.Rdata## The output is saved in/rtmp/RtmpCbyWWZ/Rbuild2a3c395ee5a52a/metalite.sl/vignettes/outtable/base0char.rtfThe baseline characteristic subgroup analysis aims to provide tables to summarize details of participants by subgroup. The development of baseline characteristic subgroup analysis involves functions:
prepare_base_char_subgroup(): prepare analysis raw
datasets.format_base_char_subgroup(): prepare analysis outdata
with proper format.rtf_base_char_subgroup(): transfer output dataset to
RTF table.adsl <- r2rtf::r2rtf_adsl
adsl$TRTA <- adsl$TRT01A
adsl$TRTA <- factor(
  adsl$TRTA,
  levels = c("Placebo", "Xanomeline Low Dose", "Xanomeline High Dose"),
  labels = c("Placebo", "Low Dose", "High Dose")
)plan <- plan(
  analysis = "base_char_subgroup",
  population = "apat",
  observation = "apat",
  parameter = "age;gender;race"
)meta <- meta_adam(
  population = adsl,
  observation = adsl
) |>
  define_plan(plan = plan) |>
  define_population(
    name = "apat",
    group = "TRTA",
    subset = quote(SAFFL == "Y"),
    var = c("USUBJID", "TRTA", "SAFFL", "AGEGR1", "SEX", "RACE")
  ) |>
  define_parameter(
    name = "age",
    var = "AGE",
    label = "Age (years)",
    vargroup = "AGEGR1"
  ) |>
  define_parameter(
    name = "race",
    var = "RACE",
    label = "Race"
  ) |>
  define_analysis(
    name = "base_char_subgroup",
    title = "Participant by Age Category and Sex",
    label = "baseline characteristic sub group table"
  ) |>
  meta_build()## Warning in FUN(X[[i]], ...): gender: has missing label## ADaM metadata: 
##    .$data_population     Population data with 254 subjects 
##    .$data_observation    Observation data with 254 records 
##    .$plan    Analysis plan with 1 plans 
## 
## 
##   Analysis population type:
##     name        id  group                                     var       subset
## 1 'apat' 'USUBJID' 'TRTA' USUBJID, TRTA, SAFFL, AGEGR1, SEX, RACE SAFFL == 'Y'
##                           label
## 1 'All Participants as Treated'
## 
## 
##   Analysis observation type:
##     name        id  group var subset                         label
## 1 'apat' 'USUBJID' 'TRTA'            'All Participants as Treated'
## 
## 
##   Analysis parameter type:
##       name         label subset
## 1    'age' 'Age (years)'       
## 2   'race'        'Race'       
## 3 'gender'                     
## 
## 
##   Analysis function:
##                   name                                     label
## 1 'base_char_subgroup' 'baseline characteristic sub group table'The input of the function prepare_base_char_subgroup()
is a meta object created by the metalite package.
The output of the function is an outdata object
containing a list of analysis raw datasets. Key arguments are:
subgroup_var: a character value of subgroup variable
name in observation data saved in meta$data_observation.subgroup_header: a character vector for column header
hierarchy. The first element will be the first level header and the
second element will be second level header.outdata <- prepare_base_char_subgroup(
  meta,
  population = "apat",
  parameter = "age;race",
  subgroup_var = "TRTA",
  subgroup_header = c("SEX", "TRTA")
)The output dataset contains commonly used statistics within each
subgroup_var.
## List of 14
##  $ meta           :List of 7
##  $ population     : chr "apat"
##  $ observation    : chr "apat"
##  $ parameter      : chr "age;race"
##  $ n              :'data.frame': 1 obs. of  5 variables:
##  $ order          : NULL
##  $ group          : chr "SEX"
##  $ reference_group: NULL
##  $ char_n         :List of 2
##  $ char_var       : chr [1:2] "AGE" "RACE"
##  $ char_prop      :List of 2
##  $ var_type       :List of 2
##  $ group_label    : Factor w/ 2 levels "F","M": 1 2
##  $ analysis       : chr "base_char_subgroup"## List of 14
##  $ meta           :List of 7
##  $ population     : chr "apat"
##  $ observation    : chr "apat"
##  $ parameter      : chr "age;race"
##  $ n              :'data.frame': 1 obs. of  5 variables:
##  $ order          : NULL
##  $ group          : chr "SEX"
##  $ reference_group: NULL
##  $ char_n         :List of 2
##  $ char_var       : chr [1:2] "AGE" "RACE"
##  $ char_prop      :List of 2
##  $ var_type       :List of 2
##  $ group_label    : Factor w/ 2 levels "F","M": 2 1
##  $ analysis       : chr "base_char_subgroup"## List of 14
##  $ meta           :List of 7
##  $ population     : chr "apat"
##  $ observation    : chr "apat"
##  $ parameter      : chr "age;race"
##  $ n              :'data.frame': 1 obs. of  5 variables:
##  $ order          : NULL
##  $ group          : chr "SEX"
##  $ reference_group: NULL
##  $ char_n         :List of 2
##  $ char_var       : chr [1:2] "AGE" "RACE"
##  $ char_prop      :List of 2
##  $ var_type       :List of 2
##  $ group_label    : Factor w/ 2 levels "F","M": 2 1
##  $ analysis       : chr "base_char_subgroup"The information about subgroup saved with outdata$group
and outdata$subgroup.
## [1] "F" "M"## [1] "Placebo"   "Low Dose"  "High Dose"n_pop: participants in population within each
subgroup_var.
##                         name n_1 n_2 n_9999 var_label
## 1 Participants in population  53  33     86     -----##                         name n_1 n_2 n_9999 var_label
## 1 Participants in population  40  44     84     -----##                         name n_1 n_2 n_9999 var_label
## 1 Participants in population  50  34     84     -----format_base_char_subgroup to prepare analysis dataset
before generate RTF output
##                                name   var_label order Placebon_1 Placebop_1
## 9        Participants in population       -----     1         53       <NA>
## 1                             65-80 Age (years)     2         22     (41.5)
## 2                               <65 Age (years)     3          9     (17.0)
## 3                               >80 Age (years)     4         22     (41.5)
## 8                              <NA> Age (years)     5       <NA>       <NA>
## 6                              Mean Age (years)     6       76.4       <NA>
## 11                               SD Age (years)     7        8.7       <NA>
## 7                            Median Age (years)     8       78.0       <NA>
## 10                            Range Age (years)     9   59 to 89       <NA>
## 4  AMERICAN INDIAN OR ALASKA NATIVE        Race    10          0      (0.0)
## 5         BLACK OR AFRICAN AMERICAN        Race    11          5      (9.4)
## 12                            WHITE        Race    12         48     (90.6)
##    Placebon_2 Placebop_2 Placebon_9999 Placebop_9999 Low Dosen_1 Low Dosep_1
## 9          33       <NA>            86          <NA>          50        <NA>
## 1          20     (60.6)            42        (48.8)          28      (56.0)
## 2           5     (15.2)            14        (16.3)           5      (10.0)
## 3           8     (24.2)            30        (34.9)          17      (34.0)
## 8        <NA>       <NA>          <NA>          <NA>        <NA>        <NA>
## 6        73.4       <NA>          75.2          <NA>        75.7        <NA>
## 11        8.1       <NA>           8.6          <NA>         8.1        <NA>
## 7        74.0       <NA>          76.0          <NA>        77.5        <NA>
## 10   52 to 85       <NA>      52 to 89          <NA>    54 to 87        <NA>
## 4           0      (0.0)             0         (0.0)           0       (0.0)
## 5           3      (9.1)             8         (9.3)           6      (12.0)
## 12         30     (90.9)            78        (90.7)          44      (88.0)
##    Low Dosen_2 Low Dosep_2 Low Dosen_9999 Low Dosep_9999 High Dosen_1
## 9           34        <NA>             84           <NA>           40
## 1           19      (55.9)             47         (56.0)           28
## 2            3       (8.8)              8          (9.5)            5
## 3           12      (35.3)             29         (34.5)            7
## 8         <NA>        <NA>           <NA>           <NA>         <NA>
## 6         75.6        <NA>           75.7           <NA>         74.7
## 11         8.7        <NA>            8.3           <NA>          7.7
## 7         77.5        <NA>           77.5           <NA>         76.0
## 10    51 to 88        <NA>       51 to 88           <NA>     56 to 88
## 4            0       (0.0)              0          (0.0)            0
## 5            0       (0.0)              6          (7.1)            6
## 12          34     (100.0)             78         (92.9)           34
##    High Dosep_1 High Dosen_2 High Dosep_2 High Dosen_9999 High Dosep_9999
## 9          <NA>           44         <NA>              84            <NA>
## 1        (70.0)           27       (61.4)              55          (65.5)
## 2        (12.5)            6       (13.6)              11          (13.1)
## 3        (17.5)           11       (25.0)              18          (21.4)
## 8          <NA>         <NA>         <NA>            <NA>            <NA>
## 6          <NA>         74.1         <NA>            74.4            <NA>
## 11         <NA>          8.2         <NA>             7.9            <NA>
## 7          <NA>         77.0         <NA>            76.0            <NA>
## 10         <NA>     56 to 86         <NA>        56 to 88            <NA>
## 4         (0.0)            1        (2.3)               1           (1.2)
## 5        (15.0)            3        (6.8)               9          (10.7)
## 12       (85.0)           40       (90.9)              74          (88.1)
##    Totaln_1 Totalp_1 Totaln_2 Totalp_2 Totaln_9999 Totalp_9999
## 9       143     <NA>      111     <NA>         254        <NA>
## 1        78   (54.5)       66   (59.5)         144      (56.7)
## 2        19   (13.3)       14   (12.6)          33      (13.0)
## 3        46   (32.2)       31   (27.9)          77      (30.3)
## 8      <NA>     <NA>     <NA>     <NA>        <NA>        <NA>
## 6      75.7     <NA>     74.4     <NA>        75.1        <NA>
## 11      8.2     <NA>      8.3     <NA>         8.2        <NA>
## 7      77.0     <NA>     77.0     <NA>        77.0        <NA>
## 10 54 to 89     <NA> 51 to 88     <NA>    51 to 89        <NA>
## 4         0    (0.0)        1    (0.9)           1       (0.4)
## 5        17   (11.9)        6    (5.4)          23       (9.1)
## 12      126   (88.1)      104   (93.7)         230      (90.6)rtf_base_char_subgroup to generate RTF output
outdata |>
  rtf_base_char_subgroup(
    source = "Source:  [CDISCpilot: adam-adsl]",
    path_outdata = tempfile(fileext = ".Rdata"),
    path_outtable = "outtable/base0charsubgroup.rtf"
  )## The outdata is saved in/rtmp/RtmpRzGgqz/file2a3c751ca3d30.Rdata## The output is saved in/rtmp/RtmpCbyWWZ/Rbuild2a3c395ee5a52a/metalite.sl/vignettes/outtable/base0charsubgroup.rtf