
Update cohort start date to be the first date from of a set of column dates
Source:R/entryAtColumnDate.R
entryAtFirstDate.Rd
entryAtFirstDate()
resets cohort start date based on a set of specified
column dates. The first date that occurs is chosen.
Usage
entryAtFirstDate(
cohort,
dateColumns,
cohortId = NULL,
returnReason = FALSE,
keepDateColumns = TRUE,
name = tableName(cohort),
.softValidation = FALSE
)
Arguments
- cohort
A cohort table in a cdm reference.
- dateColumns
Character vector indicating date columns in the cohort table to consider.
- 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.
- returnReason
If TRUE it will return a column indicating which of the
dateColumns
was used.- keepDateColumns
If TRUE the returned cohort will keep columns in
dateColumns
.- name
Name of the new cohort table created in the cdm object.
- .softValidation
Whether to perform a soft validation of consistency. If set to FALSE four additional checks will be performed: 1) a check that cohort end date is not before cohort start date, 2) a check that there are no missing values in required columns, 3) a check that cohort duration is all within observation period, and 4) that there are no overlapping cohort entries
Examples
# \donttest{
library(CohortConstructor)
library(PatientProfiles)
cdm <- mockCohortConstructor()
cdm$cohort1 <- cdm$cohort1 |>
addTableIntersectDate(
tableName = "drug_exposure",
nameStyle = "prior_drug",
order = "last",
window = c(-Inf, 0)
) |>
addPriorObservation(priorObservationType = "date", name = "cohort1")
cdm$cohort1 |>
entryAtFirstDate(dateColumns = c("prior_drug", "prior_observation"))
#> Joining with `by = join_by(cohort_definition_id, subject_id, cohort_end_date)`
#> # A tibble: 60 × 6
#> cohort_definition_id subject_id cohort_start_date cohort_end_date prior_drug
#> <int> <int> <date> <date> <date>
#> 1 1 1 2009-08-05 2013-04-03 2009-12-30
#> 2 1 4 2006-09-22 2017-06-23 2009-04-12
#> 3 1 5 2017-03-11 2017-05-02 2017-03-24
#> 4 1 6 2013-07-26 2015-11-02 2014-11-22
#> 5 1 7 1960-04-02 1975-07-25 1966-02-02
#> 6 1 9 2017-11-21 2017-11-30 2017-11-29
#> 7 1 11 2013-11-26 2014-11-22 2014-10-03
#> 8 1 12 1981-11-23 1993-11-24 1986-05-16
#> 9 1 13 2019-01-31 2019-02-18 2019-02-12
#> 10 1 14 2014-05-05 2014-11-24 2014-10-06
#> # ℹ 50 more rows
#> # ℹ 1 more variable: prior_observation <date>
# }