Skip to contents

stratifyCohorts() creates new cohorts, splitting an existing cohort based on specified columns on which to stratify on.

Usage

stratifyCohorts(
  cohort,
  strata,
  cohortId = NULL,
  removeStrata = TRUE,
  name = tableName(cohort)
)

Arguments

cohort

A cohort table in a cdm reference.

strata

A strata list that point to columns in cohort table.

cohortId

Vector identifying which cohorts to include (cohort_definition_id or cohort_name). Cohorts not included will be removed from the cohort set.

removeStrata

Whether to remove strata columns from final cohort table.

name

Name of the new cohort table created in the cdm object.

Value

Cohort table stratified.

Examples

# \donttest{
library(CohortConstructor)
library(PatientProfiles)

cdm <- mockCohortConstructor()

cdm$my_cohort <- cdm$cohort1 |>
  addAge(ageGroup = list("child" = c(0, 17), "adult" = c(18, Inf))) |>
  addSex() |>
  stratifyCohorts(
    strata = list("sex", c("sex", "age_group")), name = "my_cohort"
  )

cdm$my_cohort
#> # Source:   table<main.my_cohort> [?? x 5]
#> # Database: DuckDB v1.0.0 [unknown@Linux 6.5.0-1025-azure:R 4.4.1/:memory:]
#>    cohort_definition_id subject_id cohort_start_date cohort_end_date   age
#>                   <int>      <int> <date>            <date>          <int>
#>  1                    2          1 2001-05-30        2003-05-01          3
#>  2                    2          1 2003-05-02        2006-06-10          5
#>  3                    1          2 2000-05-04        2000-05-17         37
#>  4                    1          2 2000-05-18        2001-01-23         37
#>  5                    1          3 2015-01-27        2015-06-28         28
#>  6                    2          4 1996-06-30        1998-11-20         17
#>  7                    1          5 2012-03-20        2012-04-30         39
#>  8                    1          5 2012-05-01        2012-07-24         39
#>  9                    2          7 2014-03-07        2014-03-07         27
#> 10                    2          7 2014-03-08        2014-03-20         27
#> # ℹ more rows

settings(cdm$my_cohort)
#> # A tibble: 6 × 8
#>   cohort_definition_id cohort_name           target_cohort_id target_cohort_name
#>                  <int> <chr>                            <int> <chr>             
#> 1                    1 cohort_1_female                      1 cohort_1          
#> 2                    2 cohort_1_male                        1 cohort_1          
#> 3                    3 cohort_1_female_adult                1 cohort_1          
#> 4                    4 cohort_1_female_child                1 cohort_1          
#> 5                    5 cohort_1_male_adult                  1 cohort_1          
#> 6                    6 cohort_1_male_child                  1 cohort_1          
#> # ℹ 4 more variables: target_cohort_table_name <chr>, strata_columns <chr>,
#> #   sex <chr>, age_group <chr>

attrition(cdm$my_cohort)
#> # A tibble: 16 × 7
#>    cohort_definition_id number_records number_subjects reason_id reason         
#>                   <int>          <int>           <int>     <int> <chr>          
#>  1                    1             10               6         1 Initial qualif…
#>  2                    1              5               3         2 filter strata:…
#>  3                    2             10               6         1 Initial qualif…
#>  4                    2              5               3         2 filter strata:…
#>  5                    3             10               6         1 Initial qualif…
#>  6                    3              5               3         2 filter strata:…
#>  7                    3              5               3         3 filter strata:…
#>  8                    4             10               6         1 Initial qualif…
#>  9                    4              5               3         2 filter strata:…
#> 10                    4              0               0         3 filter strata:…
#> 11                    5             10               6         1 Initial qualif…
#> 12                    5              5               3         2 filter strata:…
#> 13                    5              2               1         3 filter strata:…
#> 14                    6             10               6         1 Initial qualif…
#> 15                    6              5               3         2 filter strata:…
#> 16                    6              3               2         3 filter strata:…
#> # ℹ 2 more variables: excluded_records <int>, excluded_subjects <int>
# }