172 lines
7.7 KiB
R
Executable file
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"))
|