PAaSO/2 Longterm/260315/last_sensitivity.R

172 lines
7.7 KiB
R
Executable file

targets::tar_read("df_all_data_formatted") |>
events_ready() |>
dplyr::filter(!is.na(pase_0), !is.na(pase_4)) |>
(\(data){
c("pase_0", "pase_4") |>
purrr::map(\(exp){
list(
"Univariable" = cox_regression(data = data, all.vars = FALSE, use.strata = FALSE, outcome.var = exp),
"Multivariable" = cox_regression(data = data, all.vars = TRUE, use.strata = FALSE, outcome.var = exp)
) |>
purrr::map(\(.x){
.x |>
gtsummary::tbl_regression(exponentiate = TRUE) |>
fix_labels()
}) |>
tbl_merged_named()
})
})() |>
gtsummary::tbl_stack()
targets::tar_read("df_all_data_formatted") |>
pase_cutter(drop.nas = TRUE) |>
events_ready(v.groups = c("clin", "lifestyle.events", "ses", "assess.events", "quartiles")) |>
dplyr::select(-dplyr::any_of(c("pase_0", "pase_4", "pase_change"))) |>
(\(data){
c("pase_0_quartile", "pase_4_quartile") |>
purrr::map(\(exp){
list(
"Univariable" = cox_regression(data = data, all.vars = FALSE, use.strata = FALSE, outcome.var = exp),
"Multivariable" = cox_regression(data = data, all.vars = TRUE, use.strata = FALSE, outcome.var = exp)
) |>
purrr::map(\(.x){
.x |>
gtsummary::tbl_regression(exponentiate = TRUE) |>
fix_labels()
}) |>
tbl_merged_named()
})
})() |>
gtsummary::tbl_stack()
targets::tar_read("df_all_data_formatted") |>
pase_cutter(drop.nas = TRUE) |>
get_vars(vars.groups = c("clin", "lifestyle.events", "ses", "assess.events", "quartiles"), vars.vec = c("inc_time")) |>
dplyr::mutate(time = time + inc_time / 365) |>
dplyr::select(-dplyr::any_of(c("pase_0", "pase_4", "pase_change", "inc_time", "event.include", "pase_4_quartile"))) |>
(\(data){
list(
"Univariable" = cox_regression(data = data, all.vars = FALSE, use.strata = FALSE, outcome.var = "pase_0_quartile"),
"Multivariable" = cox_regression(data = data, all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_0_quartile")
) |>
purrr::map(\(.x){
.x |>
gtsummary::tbl_regression(exponentiate = TRUE) |>
fix_labels()
}) |>
tbl_merged_named()
})()
ls_sens <- list(
pase_0_all_quartile = list(
data = targets::tar_read("df_all_data_formatted") |>
pase_cutter(drop.nas = FALSE) |>
get_vars(vars.groups = c("clin", "lifestyle.events", "ses", "assess.pred", "quartiles"), vars.vec = c("inc_time",
"time",
"status")) |>
dplyr::mutate(time = time + inc_time / 365) |>
dplyr::select(-dplyr::any_of(c("pase_0", "pase_4", "pase_change", "inc_time", "event.include", "pase_4_quartile"))),
main.exp = "pase_0_quartile"
),
# pase_0_all_contin = list(
# data = targets::tar_read("df_all_data_formatted") |>
# get_vars(vars.groups = c("clin", "lifestyle.events", "ses", "assess.pred", "quartiles"), vars.vec = c("inc_time",
# "time",
# "status")) |>
# dplyr::mutate(time = time + inc_time / 365) |>
# dplyr::select(-dplyr::any_of(c("pase_4", "pase_change", "inc_time", "event.include", "pase_0_quartile", "pase_4_quartile"))),
# main.exp = "pase_0"
# ),
pase_0_excl_quartile = list(
data = targets::tar_read("df_all_data_formatted") |>
pase_cutter(drop.nas = TRUE,drop.pase = FALSE) |>
events_ready(v.groups = c("clin", "lifestyle.events", "ses", "assess.pred", "quartiles"), vars.vec = c("inc_time",
"time",
"status")) |>
dplyr::select(-dplyr::any_of(c("pase_0","pase_4", "pase_change", "inc_time", "event.include", "pase_4_quartile"))),
main.exp = "pase_0_quartile"
),
# pase_0_excl_contin = list(
# data = targets::tar_read("df_all_data_formatted") |>
# events_ready(v.groups = c("clin", "lifestyle.events", "ses", "assess.pred", "quartiles"), vars.vec = c("inc_time",
# "time",
# "status")) |>
# dplyr::filter(!is.na(pase_0), !is.na(pase_4)) |>
# dplyr::select(-pase_4),
# main.exp = "pase_0"
# ),
pase_4_quartile = list(
data = targets::tar_read("df_all_data_formatted") |>
dplyr::mutate(pase_4_quartile=cut(x = pase_4, breaks = quantile(pase_4, na.rm = TRUE), labels = 1:4, include.lowest = TRUE)) |>
get_vars(vars.groups = c("clin", "lifestyle.events", "ses", "assess.events", "quartiles"))|>
dplyr::filter(!is.na(pase_4_quartile),event.include) |>
dplyr::select(-dplyr::any_of(c("pase_0","pase_4", "pase_change", "inc_time", "event.include", "pase_0_quartile"))),
main.exp = "pase_4_quartile"
),
# pase_4_contin = list(
# data = targets::tar_read("df_all_data_formatted") |>
# events_ready() |>
# dplyr::filter(!is.na(pase_0), !is.na(pase_4)) |>
# dplyr::select(-pase_0),
# main.exp = "pase_4"
# ),
pase_4_change_late_cut = list(
data = targets::tar_read("df_all_data_formatted") |>
events_ready() |>
dplyr::filter(!is.na(pase_0), !is.na(pase_4)) |>
pase_cutter(drop.pase = TRUE),
main.exp = "pase_change"
# ),
# pase_4_change_earliest_cut = list(
# data = targets::tar_read("df_all_data_formatted") |>
# pase_cutter(drop.pase = TRUE)|>
# events_ready(vars.vec = c("pase_change")) |>
# dplyr::filter(!is.na(pase_change)) ,
# main.exp = "pase_change"
)
)
f <- function(data, main.exp, ...) {
set.seed(3023)
imp <- fun_impute(data = data, ignore = main.exp)
list(
"Univariable" = cox_regression(data = data, all.vars = FALSE, use.strata = FALSE, outcome.var = main.exp),
"Multivariable" = cox_regression(data = data, all.vars = TRUE, use.strata = FALSE, outcome.var = main.exp),
"Multivariable Imputed" = cox_regression(data = imp, all.vars = TRUE, use.strata = FALSE, outcome.var = main.exp)
)
}
ls_out <- purrr::map(ls_sens, \(.x){
do.call(f, .x)
})
ls_stack <- ls_out |>
purrr::imap(\(.x, .i){
list(
"Group counts" = ls_sens[[.i]][["data"]] |>
dplyr::select(ls_sens[[.i]][["main.exp"]]) |>
gtsummary::tbl_summary(statistic = list(gtsummary::all_continuous() ~ "{N_nonmiss} ({p_nonmiss}%)", gtsummary::all_categorical() ~ "{n} ({p}%)")) |>
fix_labels(),
.x |>
lapply(\(.y){
.y |>
tbl_regression_standard() |>
# gtsummary::modify_table_styling(columns = tidyselect::starts_with("p.value"), hide = TRUE) |>
gtsummary::remove_row_type(variables = -dplyr::any_of(ls_sens[[.i]][["main.exp"]]), type = "all") |>
gtsummary::bold_p()
})
) |>
purrr::list_flatten() |>
tbl_merged_named()
}) |>
tbl_stack_named()
ls_stack <- ls_stack|> gtsummary::as_gt() |> gt::tab_style(style = gt::cell_text(weight="bold"),locations = gt::cells_row_groups(dplyr::everything()))
ls_stack |> gt::gtsave(filename = here::here("out/pase_extra_cox2.docx"))