Skip to contents

Merge Datasets

Usage

dataset_merge(..., byvars, subset = NULL, type = "left")

Arguments

...

Datasets to be merged.

byvars

By variables required to perform merge.

subset

Dataset specific subset conditions as list, default is NULL. Has to be specified in the same order of datasets to be merged

type

Type of join to perform. Values: "left", "right", "inner", "full", "semi", "anti"

Value

A data.frame

Examples

dataset_merge(
  adsl,
  adlb,
  byvars = "STUDYID~USUBJID~SUBJID",
  subset = list("SEX=='F'", "PARAMCD == 'ALT'")
)
#> # A tibble: 1,156 × 85
#>    STUDYID     USUBJID SUBJID SITEID SITEGR1 ARM   TRT01P TRT01PN TRT01A TRT01AN
#>    <chr>       <chr>   <chr>  <chr>  <chr>   <chr> <chr>    <dbl> <chr>    <dbl>
#>  1 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  2 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  3 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  4 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  5 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  6 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  7 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  8 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  9 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> 10 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> # ℹ 1,146 more rows
#> # ℹ 75 more variables: TRTDUR <dbl>, AVGDD <dbl>, CUMDOSE <dbl>, AGEU <chr>,
#> #   ETHNIC <chr>, ITTFL <chr>, EFFFL <chr>, COMP8FL <chr>, COMP16FL <chr>,
#> #   DISCONFL <chr>, DTHFL <chr>, BMIBL <dbl>, BMIBLGR1 <chr>, HEIGHTBL <dbl>,
#> #   WEIGHTBL <dbl>, EDUCLVL <dbl>, DISONSDT <date>, DURDIS <dbl>,
#> #   DURDSGR1 <chr>, VISIT1DT <date>, RFSTDTC <chr>, RFENDTC <chr>,
#> #   VISNUMEN <dbl>, RFENDT <date>, DCDECOD <chr>, DCREASCD <chr>, …

dataset_merge(
  adsl,
  adlb,
  byvars = "STUDYID~USUBJID~SUBJID",
  subset = list("SEX=='F'", NA_character_)
)
#> # A tibble: 41,764 × 85
#>    STUDYID     USUBJID SUBJID SITEID SITEGR1 ARM   TRT01P TRT01PN TRT01A TRT01AN
#>    <chr>       <chr>   <chr>  <chr>  <chr>   <chr> <chr>    <dbl> <chr>    <dbl>
#>  1 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  2 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  3 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  4 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  5 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  6 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  7 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  8 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  9 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> 10 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> # ℹ 41,754 more rows
#> # ℹ 75 more variables: TRTDUR <dbl>, AVGDD <dbl>, CUMDOSE <dbl>, AGEU <chr>,
#> #   ETHNIC <chr>, ITTFL <chr>, EFFFL <chr>, COMP8FL <chr>, COMP16FL <chr>,
#> #   DISCONFL <chr>, DTHFL <chr>, BMIBL <dbl>, BMIBLGR1 <chr>, HEIGHTBL <dbl>,
#> #   WEIGHTBL <dbl>, EDUCLVL <dbl>, DISONSDT <date>, DURDIS <dbl>,
#> #   DURDSGR1 <chr>, VISIT1DT <date>, RFSTDTC <chr>, RFENDTC <chr>,
#> #   VISNUMEN <dbl>, RFENDT <date>, DCDECOD <chr>, DCREASCD <chr>, …

dataset_merge(
  adsl,
  adlb,
  byvars = "STUDYID~USUBJID~SUBJID",
  subset = list(NA_character_, "PARAMCD == 'ALT'")
)
#> # A tibble: 2,058 × 85
#>    STUDYID     USUBJID SUBJID SITEID SITEGR1 ARM   TRT01P TRT01PN TRT01A TRT01AN
#>    <chr>       <chr>   <chr>  <chr>  <chr>   <chr> <chr>    <dbl> <chr>    <dbl>
#>  1 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  2 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  3 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  4 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  5 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  6 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  7 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  8 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  9 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> 10 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> # ℹ 2,048 more rows
#> # ℹ 75 more variables: TRTDUR <dbl>, AVGDD <dbl>, CUMDOSE <dbl>, AGEU <chr>,
#> #   ETHNIC <chr>, ITTFL <chr>, EFFFL <chr>, COMP8FL <chr>, COMP16FL <chr>,
#> #   DISCONFL <chr>, DTHFL <chr>, BMIBL <dbl>, BMIBLGR1 <chr>, HEIGHTBL <dbl>,
#> #   WEIGHTBL <dbl>, EDUCLVL <dbl>, DISONSDT <date>, DURDIS <dbl>,
#> #   DURDSGR1 <chr>, VISIT1DT <date>, RFSTDTC <chr>, RFENDTC <chr>,
#> #   VISNUMEN <dbl>, RFENDT <date>, DCDECOD <chr>, DCREASCD <chr>, …

dataset_merge(
  adsl,
  adlb,
  byvars = "STUDYID~USUBJID~SUBJID",
  subset = list("USUBJID == '01-701-1015'", NA_character_)
)
#> # A tibble: 396 × 85
#>    STUDYID     USUBJID SUBJID SITEID SITEGR1 ARM   TRT01P TRT01PN TRT01A TRT01AN
#>    <chr>       <chr>   <chr>  <chr>  <chr>   <chr> <chr>    <dbl> <chr>    <dbl>
#>  1 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  2 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  3 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  4 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  5 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  6 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  7 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  8 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  9 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> 10 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> # ℹ 386 more rows
#> # ℹ 75 more variables: TRTDUR <dbl>, AVGDD <dbl>, CUMDOSE <dbl>, AGEU <chr>,
#> #   ETHNIC <chr>, ITTFL <chr>, EFFFL <chr>, COMP8FL <chr>, COMP16FL <chr>,
#> #   DISCONFL <chr>, DTHFL <chr>, BMIBL <dbl>, BMIBLGR1 <chr>, HEIGHTBL <dbl>,
#> #   WEIGHTBL <dbl>, EDUCLVL <dbl>, DISONSDT <date>, DURDIS <dbl>,
#> #   DURDSGR1 <chr>, VISIT1DT <date>, RFSTDTC <chr>, RFENDTC <chr>,
#> #   VISNUMEN <dbl>, RFENDT <date>, DCDECOD <chr>, DCREASCD <chr>, …

## more than 2 datasets

dataset_merge(
  dplyr::filter(adsl, USUBJID == "01-701-1015"),
  adsl,
  adlb,
  byvars = "STUDYID~USUBJID~SUBJID"
)
#> # A tibble: 396 × 85
#>    STUDYID     USUBJID SUBJID SITEID SITEGR1 ARM   TRT01P TRT01PN TRT01A TRT01AN
#>    <chr>       <chr>   <chr>  <chr>  <chr>   <chr> <chr>    <dbl> <chr>    <dbl>
#>  1 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  2 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  3 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  4 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  5 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  6 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  7 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  8 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#>  9 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> 10 CDISCPILOT… 01-701… 1015   701    701     Plac… Place…       0 Place…       0
#> # ℹ 386 more rows
#> # ℹ 75 more variables: TRTDUR <dbl>, AVGDD <dbl>, CUMDOSE <dbl>, AGEU <chr>,
#> #   ETHNIC <chr>, ITTFL <chr>, EFFFL <chr>, COMP8FL <chr>, COMP16FL <chr>,
#> #   DISCONFL <chr>, DTHFL <chr>, BMIBL <dbl>, BMIBLGR1 <chr>, HEIGHTBL <dbl>,
#> #   WEIGHTBL <dbl>, EDUCLVL <dbl>, DISONSDT <date>, DURDIS <dbl>,
#> #   DURDSGR1 <chr>, VISIT1DT <date>, RFSTDTC <chr>, RFENDTC <chr>,
#> #   VISNUMEN <dbl>, RFENDT <date>, DCDECOD <chr>, DCREASCD <chr>, …