The
filter_pd() function has been
superseded in favor of filter_relative().
Filter a dataset to only include the source parameter records up to and including the first PD (progressive disease). These records are passed to downstream derivations regarding responses such as BOR (best overall response).
Usage
filter_pd(
dataset,
filter,
source_pd,
source_datasets,
subject_keys = get_admiral_option("subject_keys")
)Arguments
- dataset
-
Input dataset
The variables
ADTand those specified bysubject_keysare expected. - filter
Filter condition for restricting the input dataset
- source_pd
-
A
admiral::date_source()object providing the date of first PDFor each subject the first date (
datefield) in the provided dataset (dataset_namefield) restricted byfilterfield is considered as first PD date. - source_datasets
-
A named list of data sets is expected.
The name must match the name provided by the
dataset_namefield of theadmiral::date_source()object specified forsource_pd. - subject_keys
-
Variables to uniquely identify a subject
A list of symbols created using
exprs()is expected.
Details
The input dataset (
dataset) is restricted byfilter.For each subject the first PD date is derived as the first date (
source_pd$date) in the source pd dataset (source_datasets[[source_pd$dataset_name]]) restricted bysource_pd$filter.The restricted input dataset is restricted to records up to first PD date. Records matching first PD date are included. For subject without any first PD date, all records are included.
See also
Other superseded:
derive_param_bor(),
derive_param_clinbenefit(),
derive_param_confirmed_bor(),
derive_param_confirmed_resp(),
derive_param_response()
Examples
library(dplyr)
library(lubridate)
library(admiral)
library(admiralonco)
# Filter OVR records up to first PD, first PD date provided in separate BDS dataset (adevent)
adrs <- tibble::tribble(
~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADT, ~ANL01FL,
"CDISCPILOT01", "01-701-1015", "OVR", "CR", "2016-01-25", "Y",
"CDISCPILOT01", "01-701-1015", "OVR", "SD", "2016-02-22", NA_character_,
"CDISCPILOT01", "01-701-1015", "OVR", "PD", "2016-02-22", "Y",
"CDISCPILOT01", "01-701-1015", "BOR", "CR", "2016-01-25", "Y",
"CDISCPILOT01", "01-701-1034", "OVR", "SD", "2015-12-07", "Y",
"CDISCPILOT01", "01-701-1034", "OVR", "PD", "2016-04-25", "Y",
"CDISCPILOT01", "01-701-1034", "OVR", "PD", "2016-06-25", "Y",
"CDISCPILOT01", "01-701-1034", "BOR", "SD", "2015-12-07", "Y",
"CDISCPILOT01", "01-701-1035", "OVR", "SD", "2016-04-25", "Y",
"CDISCPILOT01", "01-701-1035", "OVR", "PR", "2016-06-25", "Y",
"CDISCPILOT01", "01-701-1035", "BOR", "PR", "2016-06-25", "Y"
) %>% mutate(
ADT = as_date(ADT)
)
adevent <- tibble::tribble(
~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADT,
"CDISCPILOT01", "01-701-1015", "PD", "Y", "2016-02-22",
"CDISCPILOT01", "01-701-1034", "PD", "Y", "2016-04-25"
) %>% mutate(
ADT = as_date(ADT)
)
pd <- date_source(
dataset_name = "adevent",
date = ADT,
filter = PARAMCD == "PD"
)
filter_pd(
dataset = adrs,
filter = PARAMCD == "OVR" & ANL01FL == "Y",
source_pd = pd,
source_datasets = list(adevent = adevent)
)
#> # A tibble: 6 × 6
#> STUDYID USUBJID PARAMCD AVALC ADT ANL01FL
#> <chr> <chr> <chr> <chr> <date> <chr>
#> 1 CDISCPILOT01 01-701-1015 OVR CR 2016-01-25 Y
#> 2 CDISCPILOT01 01-701-1015 OVR PD 2016-02-22 Y
#> 3 CDISCPILOT01 01-701-1034 OVR SD 2015-12-07 Y
#> 4 CDISCPILOT01 01-701-1034 OVR PD 2016-04-25 Y
#> 5 CDISCPILOT01 01-701-1035 OVR SD 2016-04-25 Y
#> 6 CDISCPILOT01 01-701-1035 OVR PR 2016-06-25 Y
# Filter OVR records up to first PD, first PD date provided in ADSL dataset
adsl <- tibble::tribble(
~STUDYID, ~USUBJID, ~PDDT,
"CDISCPILOT01", "01-701-1015", "2016-02-22",
"CDISCPILOT01", "01-701-1034", "2016-04-25",
"CDISCPILOT01", "01-701-1035", ""
) %>% mutate(
PDDT = as_date(PDDT)
)
pd <- date_source(
dataset_name = "adsl",
date = PDDT
)
filter_pd(
dataset = adrs,
filter = PARAMCD == "OVR" & ANL01FL == "Y",
source_pd = pd,
source_datasets = list(adsl = adsl)
)
#> # A tibble: 6 × 6
#> STUDYID USUBJID PARAMCD AVALC ADT ANL01FL
#> <chr> <chr> <chr> <chr> <date> <chr>
#> 1 CDISCPILOT01 01-701-1015 OVR CR 2016-01-25 Y
#> 2 CDISCPILOT01 01-701-1015 OVR PD 2016-02-22 Y
#> 3 CDISCPILOT01 01-701-1034 OVR SD 2015-12-07 Y
#> 4 CDISCPILOT01 01-701-1034 OVR PD 2016-04-25 Y
#> 5 CDISCPILOT01 01-701-1035 OVR SD 2016-04-25 Y
#> 6 CDISCPILOT01 01-701-1035 OVR PR 2016-06-25 Y
# Filter OVR records up to first PD, first PD date provided in input dataset (PD parameter)
adrs <- tibble::tribble(
~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADT, ~ANL01FL,
"CDISCPILOT01", "01-701-1015", "OVR", "CR", "2016-01-25", "Y",
"CDISCPILOT01", "01-701-1015", "OVR", "SD", "2016-02-22", NA_character_,
"CDISCPILOT01", "01-701-1015", "OVR", "PD", "2016-02-22", "Y",
"CDISCPILOT01", "01-701-1015", "BOR", "CR", "2016-01-25", "Y",
"CDISCPILOT01", "01-701-1034", "OVR", "SD", "2015-12-07", "Y",
"CDISCPILOT01", "01-701-1034", "OVR", "PD", "2016-04-25", "Y",
"CDISCPILOT01", "01-701-1034", "OVR", "PD", "2016-06-25", "Y",
"CDISCPILOT01", "01-701-1034", "BOR", "SD", "2015-12-07", "Y",
"CDISCPILOT01", "01-701-1035", "OVR", "SD", "2016-04-25", "Y",
"CDISCPILOT01", "01-701-1035", "OVR", "PR", "2016-06-25", "Y",
"CDISCPILOT01", "01-701-1035", "BOR", "PR", "2016-06-25", "Y",
"CDISCPILOT01", "01-701-1015", "PD", "Y", "2016-02-22", "Y",
"CDISCPILOT01", "01-701-1034", "PD", "Y", "2016-04-25", "Y"
) %>% mutate(
ADT = as_date(ADT)
)
pd <- date_source(
dataset_name = "adrs",
date = ADT,
filter = PARAMCD == "PD"
)
filter_pd(
dataset = adrs,
filter = PARAMCD == "OVR" & ANL01FL == "Y",
source_pd = pd,
source_datasets = list(adrs = adrs)
)
#> # A tibble: 6 × 6
#> STUDYID USUBJID PARAMCD AVALC ADT ANL01FL
#> <chr> <chr> <chr> <chr> <date> <chr>
#> 1 CDISCPILOT01 01-701-1015 OVR CR 2016-01-25 Y
#> 2 CDISCPILOT01 01-701-1015 OVR PD 2016-02-22 Y
#> 3 CDISCPILOT01 01-701-1034 OVR SD 2015-12-07 Y
#> 4 CDISCPILOT01 01-701-1034 OVR PD 2016-04-25 Y
#> 5 CDISCPILOT01 01-701-1035 OVR SD 2016-04-25 Y
#> 6 CDISCPILOT01 01-701-1035 OVR PR 2016-06-25 Y
# Filter OVR records up to first PD, first PD date derived from OVR records
adrs <- tibble::tribble(
~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADT, ~ANL01FL,
"CDISCPILOT01", "01-701-1015", "OVR", "CR", "2016-01-25", "Y",
"CDISCPILOT01", "01-701-1015", "OVR", "SD", "2016-02-22", NA_character_,
"CDISCPILOT01", "01-701-1015", "OVR", "PD", "2016-02-22", "Y",
"CDISCPILOT01", "01-701-1015", "BOR", "CR", "2016-01-25", "Y",
"CDISCPILOT01", "01-701-1034", "OVR", "SD", "2015-12-07", "Y",
"CDISCPILOT01", "01-701-1034", "OVR", "PD", "2016-04-25", "Y",
"CDISCPILOT01", "01-701-1034", "OVR", "PD", "2016-06-25", "Y",
"CDISCPILOT01", "01-701-1034", "BOR", "SD", "2015-12-07", "Y",
"CDISCPILOT01", "01-701-1035", "OVR", "SD", "2016-04-25", "Y",
"CDISCPILOT01", "01-701-1035", "OVR", "PR", "2016-06-25", "Y",
"CDISCPILOT01", "01-701-1035", "BOR", "PR", "2016-06-25", "Y"
) %>% mutate(
ADT = as_date(ADT)
)
pd <- date_source(
dataset_name = "adrs",
date = ADT,
filter = PARAMCD == "OVR" & ANL01FL == "Y" & AVALC == "PD"
)
filter_pd(
dataset = adrs,
filter = PARAMCD == "OVR" & ANL01FL == "Y",
source_pd = pd,
source_datasets = list(adrs = adrs)
)
#> # A tibble: 6 × 6
#> STUDYID USUBJID PARAMCD AVALC ADT ANL01FL
#> <chr> <chr> <chr> <chr> <date> <chr>
#> 1 CDISCPILOT01 01-701-1015 OVR CR 2016-01-25 Y
#> 2 CDISCPILOT01 01-701-1015 OVR PD 2016-02-22 Y
#> 3 CDISCPILOT01 01-701-1034 OVR SD 2015-12-07 Y
#> 4 CDISCPILOT01 01-701-1034 OVR PD 2016-04-25 Y
#> 5 CDISCPILOT01 01-701-1035 OVR SD 2016-04-25 Y
#> 6 CDISCPILOT01 01-701-1035 OVR PR 2016-06-25 Y
