library(dplyr, warn.conflicts = FALSE)
ex <- tribble(
~STUDYID, ~DOMAIN, ~USUBJID, ~EXSEQ, ~EXDOSE, ~EXTRT,
"PILOT01", "EX", "01-1442", 1, 54, "XANO",
"PILOT01", "EX", "01-1442", 2, 54, "XANO",
"PILOT01", "EX", "01-1442", 3, 54, "XANO",
"PILOT01", "EX", "01-1444", 1, 54, "XANO",
"PILOT01", "EX", "01-1444", 2, 81, "XANO",
"PILOT01", "EX", "05-1382", 1, 54, "XANO",
"PILOT01", "EX", "08-1213", 1, 54, "XANO",
"PILOT01", "EX", "10-1053", 1, 54, "XANO",
"PILOT01", "EX", "10-1053", 2, 54, "XANO",
"PILOT01", "EX", "10-1183", 1, 0, "PLACEBO",
"PILOT01", "EX", "10-1183", 2, 0, "PLACEBO",
"PILOT01", "EX", "10-1183", 3, 0, "PLACEBO",
"PILOT01", "EX", "11-1036", 1, 0, "PLACEBO",
"PILOT01", "EX", "11-1036", 2, 0, "PLACEBO",
"PILOT01", "EX", "11-1036", 3, 0, "PLACEBO",
"PILOT01", "EX", "14-1425", 1, 54, "XANO",
"PILOT01", "EX", "15-1319", 1, 54, "XANO",
"PILOT01", "EX", "15-1319", 2, 81, "XANO",
"PILOT01", "EX", "16-1151", 1, 54, "XANO",
"PILOT01", "EX", "16-1151", 2, 54, "XANO"
)
# Select first dose for each patient
ex %>%
filter_extreme(
by_vars = exprs(USUBJID),
order = exprs(EXSEQ),
mode = "first"
) %>%
select(USUBJID, EXSEQ)
# Select highest dose for each patient on the active drug
ex %>%
filter(EXTRT != "PLACEBO") %>%
filter_extreme(
by_vars = exprs(USUBJID),
order = exprs(EXDOSE),
mode = "last",
check_type = "none"
) %>%
select(USUBJID, EXTRT, EXDOSE)
Run the code above in your browser using DataLab