# Code to create data/dose_freq_lookup
dose_freq_lookup <- tribble(
~NCI_CODE, ~CDISC_VALUE,
"C64526", "1 TIME PER WEEK",
"C139179", "10 DAYS PER MONTH",
"C64497", "2 TIMES PER WEEK",
"C98861", "2 TIMES PER YEAR",
"C98859", "3 TIMES PER MONTH",
"C64528", "3 TIMES PER WEEK",
"C98860", "3 TIMES PER YEAR",
"C98852", "4 TIMES PER MONTH",
"C64531", "4 TIMES PER WEEK",
"C98853", "4 TIMES PER YEAR",
"C98849", "5 TIMES PER DAY",
"C98850", "5 TIMES PER MONTH",
"C85552", "5 TIMES PER WEEK",
"C98851", "5 TIMES PER YEAR",
"C98855", "6 TIMES PER DAY",
"C98856", "6 TIMES PER MONTH",
"C98857", "6 TIMES PER WEEK",
"C98858", "6 TIMES PER YEAR",
"C139180", "7 TIMES PER DAY",
"C98854", "7 TIMES PER WEEK",
"C139181", "8 TIMES PER DAY",
"C139182", "9 TIMES PER DAY",
"C64496", "BID",
"C71129", "BIM",
"C161332", "EVERY 12 WEEKS",
"C161336", "EVERY 16 WEEKS",
"C71127", "EVERY 2 WEEKS",
"C64535", "EVERY 3 WEEKS",
"C161333", "EVERY 3 YEARS",
"C64529", "EVERY 4 WEEKS",
"C103390", "EVERY 5 WEEKS",
"C161334", "EVERY 5 YEARS",
"C89788", "EVERY 6 WEEKS",
"C116149", "EVERY 7 WEEKS",
"C103389", "EVERY 8 WEEKS",
"C154484", "EVERY AFTERNOON",
"C160957", "EVERY EVENING",
"C67069", "EVERY WEEK",
"C74924", "PA",
"C64500", "Q10H",
"C64501", "Q11H",
"C64502", "Q12H",
"C64503", "Q13H",
"C64504", "Q14H",
"C64505", "Q15H",
"C64506", "Q16H",
"C64507", "Q17H",
"C64508", "Q18H",
"C64509", "Q19H",
"C64511", "Q20H",
"C64512", "Q21H",
"C64513", "Q22H",
"C64514", "Q23H",
"C64515", "Q24H",
"C64516", "Q2H",
"C64536", "Q2M",
"C89791", "Q36H",
"C64533", "Q3D",
"C64517", "Q3H",
"C64537", "Q3M",
"C139183", "Q45MIN",
"C89790", "Q48H",
"C64534", "Q4D",
"C64518", "Q4H",
"C64538", "Q4M",
"C71124", "Q5D",
"C64519", "Q5H",
"C161335", "Q6D",
"C64520", "Q6H",
"C89789", "Q6M",
"C174288", "Q72H",
"C139177", "Q7D",
"C64521", "Q7H",
"C64523", "Q8H",
"C64524", "Q9H",
"C64595", "QAM",
"C25473", "QD",
"C64510", "QH",
"C64593", "QHS",
"C64530", "QID",
"C64498", "QM",
"C139178", "QN",
"C64525", "QOD",
"C64525", "Q2D",
"C64596", "QPM",
"C64527", "TID"
) %>%
mutate(
DOSE_COUNT = case_when(
str_detect(CDISC_VALUE, "PER [WMY]") ~
as.numeric(str_remove_all(CDISC_VALUE, "[\\D]")),
str_detect(CDISC_VALUE, "PER [D]") ~
24 / as.numeric(str_remove_all(CDISC_VALUE, "[\\D]")),
str_detect(CDISC_VALUE, "^Q\\d{1,2}(H|MIN)") ~
1 / as.numeric(str_remove_all(CDISC_VALUE, "[\\D]")),
str_detect(CDISC_VALUE, "^(Q|EVERY)\\s?\\d{1,2}") ~
1 / as.numeric(str_remove_all(CDISC_VALUE, "[\\D]")),
str_detect(CDISC_VALUE, "^EVERY (A|E|W)[:alpha:]+") ~ 1,
str_detect(CDISC_VALUE, "^Q(AM|PM|M|N|D|HS)|^PA$") ~ 1,
str_detect(CDISC_VALUE, "^QH$") ~ 1,
str_detect(CDISC_VALUE, "BIM") ~ 2,
str_detect(CDISC_VALUE, "BID") ~ 1 / 12,
str_detect(CDISC_VALUE, "TID") ~ 1 / 8,
str_detect(CDISC_VALUE, "QID") ~ 1 / 6,
str_detect(CDISC_VALUE, "QOD") ~ 0.5,
),
DOSE_WINDOW = case_when(
str_detect(CDISC_VALUE, "EVERY \\d{1,2}|PER [WMY]") ~
str_remove_all(sub(".* (\\w+)$", "\\1", CDISC_VALUE), "S"),
str_detect(CDISC_VALUE, "^Q\\d{1,2}D$") ~ "DAY",
str_detect(CDISC_VALUE, "^Q\\d{1,2}M$") ~ "MONTH",
str_detect(CDISC_VALUE, "^Q\\d{0,2}H$|PER D") ~ "HOUR",
str_detect(CDISC_VALUE, "^Q\\d{1,2}MIN$") ~ "MINUTE",
CDISC_VALUE %in% c("EVERY AFTERNOON", "EVERY EVENING") ~ "DAY",
CDISC_VALUE %in% c("EVERY WEEK") ~ "WEEK",
CDISC_VALUE %in% c(
"QAM", "QPM", "QHS",
"QD", "QN", "QOD"
) ~ "DAY",
CDISC_VALUE %in% c(
"BID", "TID", "QID"
) ~ "HOUR",
CDISC_VALUE %in% c("QM", "BIM") ~ "MONTH",
CDISC_VALUE == "PA" ~ "YEAR",
)
) %>%
mutate(
CONVERSION_FACTOR = case_when(
DOSE_WINDOW == "MINUTE" ~ 1,
DOSE_WINDOW == "HOUR" ~ 1,
DOSE_WINDOW == "DAY" ~ 1,
DOSE_WINDOW == "WEEK" ~ (1 / 7),
DOSE_WINDOW == "MONTH" ~ (1 / 30.4375),
DOSE_WINDOW == "YEAR" ~ (1 / 365.25),
)
)
# create dose_freq_lookup.rda in data/
usethis::use_data(dose_freq_lookup, overwrite = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.