Skip to contents

requireTableIntersect() filters a cohort table based on a requirement that an individual is seen (or not seen) to have a record (or no records) in a clinical table in some time window around an index date.

Usage

requireTableIntersect(
  cohort,
  tableName,
  window,
  intersections = c(1, Inf),
  cohortId = NULL,
  indexDate = "cohort_start_date",
  targetStartDate = startDateColumn(tableName),
  targetEndDate = endDateColumn(tableName),
  censorDate = NULL,
  name = tableName(cohort)
)

Arguments

cohort

A cohort table in a cdm reference.

tableName

Name of the table to check for intersect.

window

A list of vectors specifying minimum and maximum days from indexDate to consider events over.

intersections

A range indicating number of intersections for criteria to be fulfilled. If a single number is passed, the number of intersections must match this.

cohortId

Vector identifying which cohorts to modify (cohort_definition_id or cohort_name). If NULL, all cohorts will be used; otherwise, only the specified cohorts will be modified, and the rest will remain unchanged.

indexDate

Name of the column in the cohort that contains the date to compute the intersection.

targetStartDate

Start date of reference in cohort table.

targetEndDate

End date of reference in cohort table. If NULL, incidence of target event in the window will be considered as intersection, otherwise prevalence of that event will be used as intersection (overlap between cohort and event).

censorDate

Whether to censor overlap events at a specific date or a column date of the cohort.

name

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

Value

Cohort table with only those in the other table kept (or those that are not in the table if negate = TRUE)

Examples

# \donttest{
library(CohortConstructor)
cdm <- mockCohortConstructor(drugExposure = TRUE)
cdm$cohort1 |>
  requireTableIntersect(tableName = "drug_exposure",
                            indexDate = "cohort_start_date",
                            window = c(-Inf, 0))
#> # Source:   table<main.cohort1> [10 x 4]
#> # Database: DuckDB v1.1.2 [unknown@Linux 6.5.0-1025-azure:R 4.4.2/:memory:]
#>    cohort_definition_id subject_id cohort_start_date cohort_end_date
#>                   <int>      <int> <date>            <date>         
#>  1                    1          2 1964-09-18        1965-08-30     
#>  2                    1          3 1976-11-28        1977-03-11     
#>  3                    1          3 1977-03-12        1978-04-03     
#>  4                    1          3 1978-04-04        1987-02-26     
#>  5                    1          4 1998-06-22        2001-02-12     
#>  6                    1          5 2007-10-19        2008-11-10     
#>  7                    1          5 2008-11-11        2011-09-12     
#>  8                    1          6 2003-10-31        2003-11-14     
#>  9                    1          6 2003-11-15        2004-04-10     
#> 10                    1          9 2012-01-18        2012-03-08     
# }