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"))