library(dplyr, warn.conflicts = FALSE)
library(lubridate, warn.conflicts = FALSE)
library(rlang, warn.conflicts = FALSE)
library(admiral, warn.conflicts = FALSE)
library(pharmaversesdtm, warn.conflicts = FALSE)
# derive weight for height/length only for those under 2 years old using WHO
# weight for length reference file
advs <- pharmaversesdtm::dm_peds %>%
select(USUBJID, BRTHDTC, SEX) %>%
right_join(., pharmaversesdtm::vs_peds, by = "USUBJID") %>%
mutate(
VSDT = ymd(VSDTC),
BRTHDT = ymd(BRTHDTC)
) %>%
derive_vars_duration(
new_var = AAGECUR,
new_var_unit = AAGECURU,
start_date = BRTHDT,
end_date = VSDT,
out_unit = "days"
)
heights <- pharmaversesdtm::vs_peds %>%
filter(VSTESTCD == "HEIGHT") %>%
select(USUBJID, VSSTRESN, VSSTRESU, VSDTC) %>%
rename(
HGTTMP = VSSTRESN,
HGTTMPU = VSSTRESU
)
advs <- advs %>%
right_join(., heights, by = c("USUBJID", "VSDTC"))
advs_under2 <- advs %>%
filter(AAGECUR < 730.5)
who_under2 <- bind_rows(
(admiralpeds::who_wt_for_lgth_boys %>%
mutate(
SEX = "M",
height_unit = "cm"
)
),
(admiralpeds::who_wt_for_lgth_girls %>%
mutate(
SEX = "F",
height_unit = "cm"
)
)
) %>%
rename(
HEIGHT_LENGTH = Length,
HEIGHT_LENGTHU = height_unit
)
derive_params_growth_height(
advs_under2,
sex = SEX,
height = HGTTMP,
height_unit = HGTTMPU,
meta_criteria = who_under2,
parameter = VSTESTCD == "WEIGHT",
analysis_var = VSSTRESN,
who_correction = TRUE,
set_values_to_sds = exprs(
PARAMCD = "WGTHSDS",
PARAM = "Weight-for-height/length z-score"
),
set_values_to_pctl = exprs(
PARAMCD = "WGTHPCTL",
PARAM = "Weight-for-height/length percentile"
)
)
Run the code above in your browser using DataLab