Description Usage Arguments Details Value Author(s) Examples
View source: R/derive_var_extreme_flag.R
Add a variable flagging the first or last observation within each by group
1 2 3 4 5 6 7 8 9 | derive_var_extreme_flag(
dataset,
by_vars,
order,
new_var,
mode,
filter = NULL,
check_type = "warning"
)
|
dataset |
Input dataset The variables specified by the |
by_vars |
Grouping variables Permitted Values: list of variables |
order |
Sort order The first or last observation is determined with respect to the specified order. Permitted Values: list of variables or functions of variables |
new_var |
Variable to add The specified variable is added to the output dataset. It is set to Permitted Values: list of name-value pairs |
mode |
Flag mode Determines of the first or last observation is flagged. Permitted Values: |
filter |
Filter for flag data Only observations fulfilling the specified condition are taken into account for flagging. If the parameter is not specified, all observations are considered. Permitted Values: a condition |
check_type |
Check uniqueness? If Default: Permitted Values: |
For each group (with respect to the variables specified for the
by_vars
parameter), new_var
is set to "Y" for the first or last observation
(with respect to the order specified for the order
parameter and the flag mode
specified for the mode
parameter). Only observations included by the filter
parameter
are considered for flagging.
Otherwise, new_var
is set to NA
.
The input dataset with the new flag variable added
Stefan Bundfuss
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | library(dplyr, warn.conflicts = FALSE)
library(admiral.test)
data("vs")
# Flag last value for each patient, test, and visit, baseline observations are ignored
vs %>%
derive_var_extreme_flag(
by_vars = vars(USUBJID, VSTESTCD, VISIT),
order = vars(VSTPTNUM),
new_var = LASTFL,
mode = "last",
filter = VISIT != "BASELINE"
) %>%
arrange(USUBJID, VSTESTCD, VISITNUM, VSTPTNUM) %>%
select(USUBJID, VSTESTCD, VISIT, VSTPTNUM, VSSTRESN, LASTFL)
# Baseline (ABLFL) examples:
input <- tibble::tribble(
~STUDYID, ~USUBJID, ~PARAMCD, ~AVISIT, ~ADT, ~AVAL, ~DTYPE,
"TEST01", "PAT01", "PARAM01", "BASELINE", as.Date("2021-04-27"), 15.0, NA,
"TEST01", "PAT01", "PARAM01", "BASELINE", as.Date("2021-04-25"), 14.0, NA,
"TEST01", "PAT01", "PARAM01", "BASELINE", as.Date("2021-04-23"), 15.0, "AVERAGE",
"TEST01", "PAT01", "PARAM01", "WEEK 1", as.Date("2021-04-27"), 10.0, "AVERAGE",
"TEST01", "PAT01", "PARAM01", "WEEK 2", as.Date("2021-04-30"), 12.0, NA,
"TEST01", "PAT02", "PARAM01", "SCREENING",as.Date("2021-04-27"), 15.0, "AVERAGE",
"TEST01", "PAT02", "PARAM01", "BASELINE", as.Date("2021-04-25"), 14.0, "AVERAGE",
"TEST01", "PAT02", "PARAM01", "BASELINE", as.Date("2021-04-23"), 15.0, "AVERAGE",
"TEST01", "PAT02", "PARAM01", "WEEK 1", as.Date("2021-04-27"), 10.0, "AVERAGE",
"TEST01", "PAT02", "PARAM01", "WEEK 2", as.Date("2021-04-30"), 12.0, "AVERAGE",
"TEST01", "PAT01", "PARAM02", "SCREENING",as.Date("2021-04-27"), 15.0, "AVERAGE",
"TEST01", "PAT01", "PARAM02", "SCREENING",as.Date("2021-04-25"), 14.0, "AVERAGE",
"TEST01", "PAT01", "PARAM02", "SCREENING",as.Date("2021-04-23"), 15.0, NA,
"TEST01", "PAT01", "PARAM02", "BASELINE", as.Date("2021-04-27"), 10.0, "AVERAGE",
"TEST01", "PAT01", "PARAM02", "WEEK 2", as.Date("2021-04-30"), 12.0, NA,
"TEST01", "PAT02", "PARAM02", "SCREENING",as.Date("2021-04-27"), 15.0, NA,
"TEST01", "PAT02", "PARAM02", "BASELINE", as.Date("2021-04-25"), 14.0, NA,
"TEST01", "PAT02", "PARAM02", "WEEK 1", as.Date("2021-04-23"), 15.0, NA,
"TEST01", "PAT02", "PARAM02", "WEEK 1", as.Date("2021-04-27"), 10.0, NA,
"TEST01", "PAT02", "PARAM02", "BASELINE", as.Date("2021-04-30"), 12.0, NA
)
# Last observation
derive_var_extreme_flag(
input,
by_vars = vars(USUBJID, PARAMCD),
order = vars(ADT),
new_var = ABLFL,
mode = "last",
filter = AVISIT == "BASELINE"
)
# Worst observation - Direction = High
derive_var_extreme_flag(
input,
by_vars = vars(USUBJID, PARAMCD),
order = vars(AVAL, ADT),
new_var = ABLFL,
mode = "last",
filter = AVISIT == "BASELINE"
)
# Worst observation - Direction = Lo
derive_var_extreme_flag(
input,
by_vars = vars(USUBJID, PARAMCD),
order = vars(desc(AVAL), ADT),
new_var = ABLFL,
mode = "last",
filter = AVISIT == "BASELINE"
)
# Average observation
derive_var_extreme_flag(
input,
by_vars = vars(USUBJID, PARAMCD),
order = vars(ADT, desc(AVAL)),
new_var = ABLFL,
mode = "last",
filter = AVISIT == "BASELINE" & DTYPE == "AVERAGE"
)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.