Description Usage Arguments Details Value Author(s) Examples
View source: R/derive_param_exposure.R
Add a record computed from the aggregated analysis value of another parameter and compute the
start (ASTDT(M)
)and end date (AENDT(M)
) as the minimum and maximum date by by_vars
.
1 2 3 4 5 6 7 8 9 | derive_param_exposure(
dataset,
by_vars,
input_code,
analysis_var,
summary_fun,
filter = NULL,
set_values_to = NULL
)
|
dataset |
Input dataset
|
by_vars |
Grouping variables For each group defined by Permitted Values: list of variables |
input_code |
Required parameter code The observations where Permitted Values: A character of |
analysis_var |
Analysis variable. |
summary_fun |
Function that takes as an input the |
filter |
Filter condition The specified condition is applied to the input dataset before deriving the new parameter, i.e., only observations fulfilling the condition are taken into account. Permitted Values: a condition |
set_values_to |
Variable-value pairs Set a list of variables to some specified value for the new observation(s)
Permitted Values: List of variable-value pairs |
For each group (with respect to the variables specified for the by_vars
parameter),
an observation is added to the output dataset and the defined values are set to the defined
variables
The input dataset with a new record added for each group (with respect to the variables
specified for the by_vars
parameter).
For each new record,
the variable specified analysis_var
is computed as defined by summary_fun
,
the variable(s) specified on the LHS of set_values_to
are set to their paired value (RHS).
In addition, the start and end date are computed as the minimum/maximum dates by by_vars
.
If the input datasets contains
both AxxDTM
and AxxDT
then all ASTDTM
,AENDTM
, ASTDT
, AENDT
are computed
only AxxDTM
then ASTDTM
,AENDTM
are computed
only AxxDT
then ASTDT
,AENDT
are computed.
Samia Kabi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | library(dplyr, warn.conflicts = FALSE)
library(lubridate, warn.conflicts = FALSE)
library(stringr, warn.conflicts = FALSE)
adex <- tibble::tribble(
~USUBJID, ~PARAMCD, ~AVAL, ~AVALC, ~VISIT, ~ASTDT, ~AENDT,
"1015", "DOSE", 80, NA_character_, "BASELINE", ymd("2014-01-02"), ymd("2014-01-16"),
"1015", "DOSE", 85, NA_character_, "WEEK 2", ymd("2014-01-17"), ymd("2014-06-18"),
"1015", "DOSE", 82, NA_character_, "WEEK 24", ymd("2014-06-19"), ymd("2014-07-02"),
"1015", "ADJ", NA, NA_character_, "BASELINE", ymd("2014-01-02"), ymd("2014-01-16"),
"1015", "ADJ", NA, NA_character_, "WEEK 2", ymd("2014-01-17"), ymd("2014-06-18"),
"1015", "ADJ", NA, NA_character_, "WEEK 24", ymd("2014-06-19"), ymd("2014-07-02"),
"1017", "DOSE", 80, NA_character_, "BASELINE", ymd("2014-01-05"), ymd("2014-01-19"),
"1017", "DOSE", 50, NA_character_, "WEEK 2", ymd("2014-01-20"), ymd("2014-05-10"),
"1017", "DOSE", 65, NA_character_, "WEEK 24", ymd("2014-05-10"), ymd("2014-07-02"),
"1017", "ADJ", NA, NA_character_, "BASELINE", ymd("2014-01-05"), ymd("2014-01-19"),
"1017", "ADJ", NA, "ADVERSE EVENT", "WEEK 2", ymd("2014-01-20"), ymd("2014-05-10"),
"1017", "ADJ", NA, NA_character_, "WEEK 24", ymd("2014-05-10"), ymd("2014-07-02")
) %>%
mutate(ASTDTM = ymd_hms(paste(ASTDT, "00:00:00")), AENDTM = ymd_hms(paste(AENDT, "00:00:00")))
# Cumulative dose
adex %>%
derive_param_exposure(
by_vars = vars(USUBJID),
set_values_to = vars(PARAMCD = "TDOSE", PARCAT1 = "OVERALL"),
input_code = "DOSE",
analysis_var = AVAL,
summary_fun = function(x) sum(x, na.rm = TRUE)
) %>%
select(-ASTDTM, -AENDTM)
# average dose in w2-24
adex %>%
derive_param_exposure(
by_vars = vars(USUBJID),
filter = VISIT %in% c("WEEK 2", "WEEK 24"),
set_values_to = vars(PARAMCD = "AVDW224", PARCAT1 = "WEEK2-24"),
input_code = "DOSE",
analysis_var = AVAL,
summary_fun = function(x) mean(x, na.rm = TRUE)
) %>%
select(-ASTDTM, -AENDTM)
# Any dose adjustment?
adex %>%
derive_param_exposure(
by_vars = vars(USUBJID),
set_values_to = vars(PARAMCD = "TADJ", PARCAT1 = "OVERALL"),
input_code = "ADJ",
analysis_var = AVALC,
summary_fun = function(x) if_else(sum(!is.na(x)) > 0, "Y", NA_character_)
) %>%
select(-ASTDTM, -AENDTM)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.