PAaSO/2 Longterm/260315/combined_script.R

740 lines
28 KiB
R
Raw Permalink Normal View History

2026-08-19 09:27:27 +02:00
# Code from: cont_pase_sens.qmd
targets::tar_config_set(store = here::here("_targets"))
source(here::here("R/functions.R"))
source(here::here("R/glmnet-reg.R"))
library(targets)
library(tidyverse)
tbl_cont_0 <- targets::tar_read("df_all_data_formatted")|>
dplyr::filter(!is.na(pase_0),!is.na(pase_4)) |>
# pase_cutter(drop.nas = TRUE) |>
events_ready(v.groups=c("clin","lifestyle.events","ses", "assess.events","quartiles")) |>
dplyr::select(dplyr::all_of(c("pase_0", "age", "reg_female", "nihss_0", "reg_trombolyse",
"reg_trombektomi", "rtreat_placebo", "reg_alone", "reg_smoker",
"reg_more_alc", "reg_hyperten", "reg_diabetes", "reg_atriefli",
"reg_ami", "soc_status_nowork", "fam_indk_hl", "edu_level_hl",
"who_4", "mdi_4", "mfi_gen_4", "mrs_4_above1", "time", "status"
))) |>
(\(data){
# c("pase_0","pase_4") |>
# purrr::map(\(exp){
list("Univariable"=cox_regression(data=data,all.vars = FALSE, use.strata = FALSE, outcome.var = "pase_0"),
"Multivariable"=cox_regression(data=data,all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_0")) |>
purrr::map(\(.x){
.x |> gtsummary::tbl_regression(exponentiate=TRUE) |> gtsummary::add_nevent()|>
fix_labels()
}) |>
tbl_merged_named()
# })
})() |>
gtsummary::modify_table_body( ~ filter(.x, variable == "pase_0"))
tbl_cont_4 <- targets::tar_read("df_all_data_formatted")|>
dplyr::filter(!is.na(pase_0),!is.na(pase_4)) |>
# pase_cutter(drop.nas = TRUE) |>
events_ready(v.groups=c("clin","lifestyle.events","ses", "assess.events","quartiles")) |>
dplyr::select(dplyr::all_of(c("pase_4", "age", "reg_female", "nihss_0", "reg_trombolyse",
"reg_trombektomi", "rtreat_placebo", "reg_alone", "reg_smoker",
"reg_more_alc", "reg_hyperten", "reg_diabetes", "reg_atriefli",
"reg_ami", "soc_status_nowork", "fam_indk_hl", "edu_level_hl",
"who_4", "mdi_4", "mfi_gen_4", "mrs_4_above1", "time", "status"
))) |>
(\(data){
# c("pase_0","pase_4") |>
# purrr::map(\(exp){
list("Univariable"=cox_regression(data=data,all.vars = FALSE, use.strata = FALSE, outcome.var = "pase_4"),
"Multivariable"=cox_regression(data=data,all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_4")) |>
purrr::map(\(.x){
.x |> gtsummary::tbl_regression(exponentiate=TRUE) |> gtsummary::add_nevent()|>
fix_labels()
}) |>
tbl_merged_named()
# })
})() |>
gtsummary::modify_table_body( ~ filter(.x, variable == "pase_4"))
list("PASE 0"=tbl_cont_0,
"PASE 6"=tbl_cont_4) |> tbl_stack_named()
# Code from: events_type_sens.qmd
targets::tar_config_set(store = here::here("_targets"))
source(here::here("R/functions.R"))
source(here::here("R/glmnet-reg.R"))
library(targets)
library(tidyverse)
df <- targets::tar_read(df_all_data_formatted) |>
dplyr::mutate(
status.all=dplyr::if_else(
startsWith(as.character(event),"death"),"death","cve",missing = NA_character_)|> factor()
)|>
get_vars(vars.groups = c("clin","lifestyle.events","ses", "ssri")) |>
dplyr::rename(status=status.all,
time=time.all)
df$status |> summary()
tbl <- df |>
pase_cutter(drop.nas = TRUE, drop.pase = TRUE) |>
(\(.x) {
list(
"death" = .x |> dplyr::mutate(status = dplyr::if_else(status == "death", 1, 0, 0)),
"cve" = .x |> dplyr::mutate(status = dplyr::if_else(status == "cve", 1, 0, 0))
)
})() |> lapply(\(.x) {
ls <- list(
"Univariate" = .x |> dplyr::select(-rtreat) |>
standard_multi_cox_table(all.vars = FALSE) |> gtsummary::add_nevent(),
"Multivariate" = .x |> dplyr::select(-rtreat) |>
standard_multi_cox_table(all.vars = TRUE) |> gtsummary::add_nevent()
) |>
purrr::map(gtsummary::bold_p) |>
tbl_merged_named()
ls |>
gtsummary::modify_table_body( ~ filter(.x, variable == "pase_change"))
}) |>
gtsummary::tbl_stack(group_header = c("death","cve"))# |>
# gtsummary::as_gt() |>
# gt::gtsave(here::here("out/trial_strat_sens.docx"))
tbl
names(tbl)
# Code from: mrs_sensitivity.qmd
source(here::here("R/functions.R"))
ls_mrs0 <- targets::tar_read(df_all_data_formatted) |>
dplyr::filter(mrs_0==0)|>
dplyr::filter(!is.na(pase_0),!is.na(pase_4)) |>
events_ready() |>
(\(.x){
list(
std=.x,
imp=.x |> events_dataset(impute = TRUE)
)
})() |>
purrr::map(\(.x){
.x |>
pase_cutter(drop.pase = TRUE,drop.nas = TRUE)
})
# targets::tar_read(df_all_data_formatted) |>
# dplyr::filter(mrs_0==0) |>
# dplyr::filter(!is.na(pase_0),!is.na(pase_4)) |> events_ready() |>
# pase_cutter(drop.pase = TRUE,drop.nas = TRUE) |>
# cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change") |>
# tbl_regression_standard()
ls <- list(
"Univariable"= ls_mrs0$std |>
dplyr::select(pase_change,dplyr::everything()) |>
splitdf4uvcox(include=c("time","status")) |>
purrr::map(\(.x){
.x |> tbl_regression_standard()
}) |>
gtsummary::tbl_stack(),
"Multivariable" = ls_mrs0$std |>
cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change") |>
tbl_regression_standard() |> gtsummary::add_glance_source_note(),
"Multivariable Imputed"= ls_mrs0$imp |>
cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change") |>
tbl_regression_standard()
) |> purrr::map(\(.x){
.x|>
gtsummary::modify_table_styling(column = p.value,
hide=TRUE)
}) |> tbl_merged_named()
ls
# |> gtsummary::as_gt() |>
# gt::gtsave(filename = here::here(glue::glue("out/sens_subset_mrs0_0.docx")))
# ls_mrs0$std |>
# cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change") |> performance::check_model()
targets::tar_read(df_all_data_formatted)|>
dplyr::filter(!is.na(pase_0),!is.na(pase_4)) |>
dplyr::filter(mrs_0==0) |>
dplyr::select(pase_0,pase_4) |>
summary()
# ls_mrs0$std |> gtsummary::tbl_summary(by = pase_change) |> fix_labels()
ls_mrs0_change <- targets::tar_read(df_all_data_formatted) |>
get_vars(vars.groups =c("clin","lifestyle.events","ses", "assess.events.pre")) |>
dplyr::filter(event.include) |>
dplyr::select(-tidyselect::all_of("event.include")) |>
(\(.x){
list(
std=.x,
imp=.x |>
dplyr::select(-tidyselect::any_of("reg_bmi"))|>
fun_impute(ignore = c("pase_0","pase_4"),pase.mod = FALSE)
)
})() |>
purrr::map(\(.x){
.x |>
pase_cutter(drop.pase = TRUE,drop.nas = TRUE)
})
# targets::tar_read(df_all_data_formatted) |>
# dplyr::filter(mrs_0==0) |>
# dplyr::filter(!is.na(pase_0),!is.na(pase_4)) |> events_ready() |>
# pase_cutter(drop.pase = TRUE,drop.nas = TRUE) |>
# cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change") |>
# tbl_regression_standard()
ls_change <- list(
"Univariable"= ls_mrs0_change$std |>
dplyr::select(pase_change,dplyr::everything()) |>
splitdf4uvcox(include=c("time","status")) |>
purrr::map(\(.x){
.x |> tbl_regression_standard()
}) |>
gtsummary::tbl_stack(),
"Multivariable" = ls_mrs0_change$std |>
cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change") |>
tbl_regression_standard() |> gtsummary::add_glance_source_note(),
"Multivariable Imputed"= ls_mrs0_change$imp |>
cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change") |>
tbl_regression_standard()
) |> purrr::map(\(.x){
.x|>
gtsummary::modify_table_styling(column = p.value,
hide=TRUE)
}) |> tbl_merged_named()
ls_change
#| eval: false
coll <- list(
mrs0_0=ls_mrs0$std|>
cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change"),
pase_change_mrs0 = ls_mrs0_change$std|>
cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change"),
pase_change=df |>
get_vars(vars.groups =c("clin","lifestyle.events","ses", "assess.events")) |>
dplyr::filter(event.include) |>
dplyr::select(-tidyselect::all_of("event.include")) |>
pase_cutter(drop.pase = TRUE,drop.nas = TRUE)|>
cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_change"),
prestroke_pase=df |>
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")))|>
cox_regression(all.vars = TRUE, use.strata = FALSE, outcome.var = "pase_0_quartile")) |>
purrr::map(performance::check_collinearity)
coll |> purrr::imap(\(.x,.i){
.x |> dplyr::as_tibble() |> gt::gt() |> gt::tab_header(.i)|>
gt::gtsave(filename = here::here(glue::glue("out/coll_{.i}.docx")))
})
# Code from: pa_event_plots.qmd
targets::tar_config_set(store = here::here("_targets"))
source(here::here("R/functions.R"))
source(here::here("R/glmnet-reg.R"))
library(targets)
library(tidyverse)
# targets::tar_read(plot_events_survival_smooth)
p1 <- targets::tar_read(df_event_data) |>
events_dataset(impute = FALSE) |>
dplyr::mutate(pase_change = factor(pase_change,
levels = c("Persistently high", "Decrease", "Increase", "Persistently low")),
pase_change = dplyr::recode(pase_change,
"Persistently high"="Consistently above lowest",
"Decrease"="Decrease to lowest",
"Increase"="Increase from lowest",
"Persistently low"="Consistently lowest")
) |>
cox_regression() |>
plot_survival_smooth(line.w = 1) +
ggplot2::labs(
fill = "PA level change group",
color = "PA level change group",
linetype = "PA level change group"
) +
ggplot2::scale_x_continuous(limits = c(0, 9.5), breaks = c(0, 3, 6, 9))
ggplot2::ggsave(here::here("out/smooth_surv.png"),
p1,
dpi = 600,
units = "cm",
height = 8,
width = 15)
p1
surv.data <- targets::tar_read(df_event_data) |>
events_dataset(impute = FALSE) |>
cox_regression(all.vars = FALSE) |> # Minimal model to just give risk table
ggsurvfit::survfit2() |>
ggsurvfit::tidy_survfit(times = c(0, 3, 6, 9))
risk_event <- c("n.risk", "cum.event") |>
purrr::map2(c("Numbers at risk", "Events"), \(.x, .y){
surv.data |>
tidyr::pivot_wider(id_cols = strata, names_from = time, values_from = {{ .x }}) |>
mask_micro_table(col.sel = -strata) |> # Masking columns
tidyr::pivot_longer(cols = -strata) |>
setNames(c("strata", "time", .x)) |>
dplyr::mutate(dplyr::across(time, ~ as.numeric(.x))) |>
dplyr::mutate(strata = factor(strata, levels = rev(c("Persistently high", "Decrease", "Increase", "Persistently low")))) |>
ggplot2::ggplot(ggplot2::aes(x = time, y = strata, label = get(.x))) +
ggplot2::geom_text() +
ggplot2::labs(y = NULL, title = .y) +
ggplot2::theme_minimal() +
ggsurvfit::theme_risktable_default()
})
p2 <- ggsurvfit::ggsurvfit_align_plots(list(p1, risk_event[1]) |> purrr::list_flatten()) |>
patchwork::wrap_plots(ncol = 1, heights = c(2, 1), guides = "collect")
ggplot2::ggsave(here::here("out/smooth_surv_tables.png"),
p2,
dpi = 600,
units = "cm",
height = 9,
width = 15)
p2
#| include: false
targets::tar_read(df_event_data) |>
events_dataset(impute = FALSE) |>
dplyr::mutate(pase_change = factor(pase_change, levels = c("Persistently high", "Decrease", "Increase", "Persistently low"))) |>
cox_regression(all.vars = FALSE) |> # Minimal model to just give risk table
ggsurvfit::survfit2() |>
ggsurvfit::ggsurvfit() +
ggplot2::scale_y_continuous(
limits = c(0, 1.02),
breaks = seq(0, 1, .25),
labels = scales::percent,
expand = c(0.01, 0)
) +
ggplot2::scale_x_continuous(breaks = c(0, 4, 8.5), expand = c(0.02, 0)) +
ggsurvfit::add_risktable()
#| include: false
targets::tar_read(df_event_data_small) |>
events_dataset(impute = FALSE) |>
dplyr::mutate(pase_change = factor(pase_change, levels = c("Persistently high", "Decrease", "Increase", "Persistently low"))) |>
cox_regression() |>
plot_survival_smooth() +
ggplot2::labs(
fill = "PA change group",
color = "PA change group",
linetype = "PA change group"
)
#| include: false
targets::tar_read(df_event_data) |>
events_dataset(impute = FALSE) |>
dplyr::mutate(pase_change = factor(pase_change, levels = c("Persistently high", "Decrease", "Increase", "Persistently low"))) |>
cox_regression() |>
plot_survival_smooth() +
ggplot2::labs(
fill = "PA change group",
color = "PA change group",
linetype = "PA change group"
)
# Code from: pa_events_analyses.qmd
targets::tar_config_set(store = here::here("_targets"))
source(here::here("R/functions.R"))
source(here::here("R/glmnet-reg.R"))
library(targets)
library(tidyverse)
#| include: false
list("Univariate"=targets::tar_read(tbl_events_cox_regression_uv),
"Multivariate"=targets::tar_read(tbl_events_cox_regression),
"Imputed Multivariate"=targets::tar_read(tbl_events_mids_cox_regression)) |>
# purrr::map(gtsummary::modify_table_styling,column=p.value,hide=TRUE) |>
purrr::map(gtsummary::bold_p) |>
tbl_merged_named()
#| include: true
list("Univariate"=targets::tar_read(tbl_events_cox_regression_uv),
"Multivariate"=targets::tar_read(tbl_events_cox_regression),
"Imputed Multivariate"=targets::tar_read(tbl_events_mids_cox_regression)) |>
purrr::map(gtsummary::modify_table_styling,column=p.value,hide=TRUE) |>
tbl_merged_named()
#| echo: true
targets::tar_read(df_event_data) |>
# dplyr::select(-reg_bmi) |>
na.omit() |>
nrow()
#| include: false
targets::tar_read(tbl_events_cox_regression_small)
targets::tar_read(df_event_data_small)
#| include: false
targets::tar_read(tbl_events_mids_cox_regression)
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){
with(data,survival::coxph(as.formula(glue::glue("survival::Surv(time, status)~{exp}")))) |>
gtsummary::tbl_regression(exponentiate=TRUE)|>
fix_labels()
})
})() |>
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(
with(data,survival::coxph(as.formula(glue::glue("survival::Surv(time, status)~{exp}")))) |>
gtsummary::tbl_regression(exponentiate=TRUE)|>
fix_labels() |> gtsummary::add_glance_source_note()
)
})() |>
gtsummary::tbl_stack()
# Code from: pa_events_summaries.qmd
targets::tar_config_set(store = here::here("_targets"))
source(here::here("R/functions.R"))
source(here::here("R/glmnet-reg.R"))
library(targets)
library(tidyverse)
#| include: false
targets::tar_read(tbl_events_summary)
#| include: true
targets::tar_read(tbl_events_summary) |> mask_micro_summary(micro.n = 5)
#| include: false
ls <- targets::tar_read(df_event_data)|>
pase_cutter(drop.pase = TRUE) |>
dplyr::select(-tidyselect::all_of(c("status", "time"))) |>
dplyr::filter(!is.na(pase_change)) |>
labelling_data() |>
gtsummary::tbl_summary(
missing = "ifany",
by = pase_change,
# value = list(where(is.logical) ~ TRUE),
missing_text = "Missing"
) |>
gtsummary::add_overall() |>
gtsummary::add_n()
ls |> add_missing_stats() |> mask_micro_summary(micro.n = 5)
targets::tar_read(df_event_data)|>
pase_cutter(drop.pase = TRUE) |>
dplyr::select(pase_change, time) |>
dplyr::filter(!is.na(pase_change)) |>
labelling_data() |>
gtsummary::tbl_summary(
missing = "ifany",
by = pase_change,
type = gtsummary::all_continuous() ~ "continuous2",
statistic = list(gtsummary::all_continuous() ~ c("{median} ({p25}, {p75})","{mean} ({sd})")),
# value = list(where(is.logical) ~ TRUE),
missing_text = "Missing"
) |>
gtsummary::add_overall()
#| include: true
targets::tar_read(df_all_data_formatted) |>
(\(.x)summary(.x$pase_0))()
# targets::tar_read(df_all_data_formatted) |>
# dplyr::filter(!is.na(pase_0),!is.na(pase_4))|>
# (\(.x)summary(.x$pase_0))()
#| include: false
targets::tar_read(df_all_data_formatted) |>
pase_cutter(drop.pase = TRUE) |>
dplyr::select(mrs_4, pase_change) |>
dplyr::mutate(pase_change = forcats::fct_relevel(pase_change, c("Persistent high", "Increase", "Decrease", "Persistent low"))) |>
na.omit() |>
(\(.x){
table(mrs = .x$mrs_4, pase = .x$pase_change)
})() |>
rankinPlot::grottaBar(groupName = "pase", scoreName = "mrs")
targets::tar_read(df_event_data)|>
pase_cutter(drop.pase = FALSE) |>
dplyr::filter(!is.na(pase_change))|>
dplyr::select(pase_0,pase_4) |>
labelling_data() |>
gtsummary::tbl_summary()
targets::tar_read(df_all_data_formatted)|>
pase_cutter(drop.pase = FALSE) |>
dplyr::filter(!is.na(pase_change))|>
dplyr::count(pase_0_quartile,pase_4_quartile) |>
write_csv(here::here("out/event_sankey_data.csv"))
ds <- targets::tar_read(df_all_data_formatted) |>
get_vars(vars.groups = c("clin", "lifestyle", "ses", "assess.events", "extra")) |>
dplyr::select(-time, -status, -soc_status) |>
pase_cutter(drop.pase = TRUE) |>
labelling_data()
ls <- list(
pase_out = ds |>
dplyr::mutate(event.filter = factor(
dplyr::case_when(is.na(pase_change) ~ "pase_incomplete",
!event.include ~ "early_event",
.default = "included"
),
levels = c("pase_incomplete", "early_event", "included")
)),
event_out = ds |>
dplyr::mutate(event.filter = factor(
dplyr::case_when(!event.include ~ "early_event",
is.na(pase_change) ~ "pase_incomplete",
.default = "included"
),
levels = c("early_event", "pase_incomplete", "included")
))
) |>
purrr::map(dplyr::select, -event.include, -pase_change, -event)
ls_tbl <- ls |>
purrr::map(\(.x){
.x |>
dplyr::filter(event.filter != "pase_incomplete") |>
dplyr::mutate(event.filter = factor(event.filter))
}) |>
(\(.x) list(.x, purrr::pluck(ls, 1) |> dplyr::mutate(event.filter = event.filter == "included")))() |>
purrr::list_flatten()
#| include: false
ls_tbl |>
purrr::map(\(.x){
.x |>
gtsummary::tbl_summary(
by = event.filter,
missing = "ifany"
) |>
gtsummary::add_p()
}) |>
(\(.x)gtsummary::tbl_merge(.x, c(names(.x)[1:2], "all_out")))()
targets::tar_read(df_all_data_formatted) |>
get_vars(vars.groups = c("clin", "lifestyle", "ses", "assess.events", "extra", "assess.pred")) |>
dplyr::select(-time,
# -status,
-soc_status) |>
pase_cutter(drop.pase = FALSE) |>
labelling_data() |>
dplyr::mutate(event.filter = factor(
dplyr::case_when(
!event.include | is.na(pase_change) ~ "excluded",
.default = "included"
)
)) |>
dplyr::select(-who_4, -mdi_4, -mrs_4_above1, -mfi_gen_4) |>
gtsummary::tbl_summary(
by = event.filter,
missing = "ifany"
) |>
gtsummary::add_p()
ds |>
dplyr::mutate(pase_incomplete=is.na(pase_change),
excluded=pase_incomplete | !event.include,
early_event=!event.include) |>
dplyr::select(early_event,pase_incomplete,excluded) |>
gtsummary::tbl_summary(by=excluded)
#| include: true
ls_tbl |>
purrr::pluck(3) |>
dplyr::select(-who_4, -mdi_4, -mrs_4_above1, -mfi_gen_4) |>
(\(.x){
.x |>
gtsummary::tbl_summary(
by = event.filter,
missing = "no"
) |>
gtsummary::add_p()
})() |> mask_micro_summary(micro.n = 5)
#| include: true
targets::tar_read(df_event_data)|>
pase_cutter(drop.pase = FALSE)|>
dplyr::filter(!is.na(pase_change)) |>
dplyr::select(-time, -status, -pase_0_quartile, -pase_4_quartile, -pase_change) |>
labelling_data() |>
dplyr::mutate(reg_female=ifelse(reg_female,"Female","Male")) |>
gtsummary::tbl_summary(
missing = "ifany",
by = reg_female,
value = list(where(is.logical) ~ TRUE)
)|> gtsummary::add_p() |>
mask_micro_summary()
#| include: false
events <- targets::tar_read(ls_all_events) |>
dplyr::bind_rows() |>
dplyr::left_join(targets::tar_read(df_all_data_formatted) |>
dplyr::select(c("event.include", "rdate", "enddate", "PNR")), by = c("CPR" = "PNR")) |>
dplyr::mutate(
date.event = as.Date(date.event),
event.trial = !date.event > enddate,
event.itt = !date.event > (lubridate::dmonths(6) + rdate)
) |>
dplyr::mutate(event.type = dplyr::if_else(grepl("^death", event.type), "death", event.type))
ls <- list(
# Events during inclusion and during first 6 months after inclusion (Intention to treat)
events |>
dplyr::select(event.type, event.trial, event.itt) |>
tidyr::pivot_longer(cols = c("event.trial", "event.itt")) |>
dplyr::filter(value) |>
dplyr::select(-value) |>
gtsummary::tbl_summary(by = name),
# All registred events
events |>
dplyr::select(event.type) |>
gtsummary::tbl_summary(),
# All events in the selected group
events |>
dplyr::select(event.type, event.include) |>
# tidyr::pivot_longer(cols = c("event.trial","event.itt")) |>
dplyr::filter(event.include) |>
dplyr::select(-event.include) |>
gtsummary::tbl_summary(),
# All considered events (first event)
targets::tar_read(df_events_deaths)|>
dplyr::mutate(event.type = dplyr::if_else(grepl("^death", event.type), "death", event.type)) |>
dplyr::select(event.type) |>
gtsummary::tbl_summary(),
# All included events (first event)
targets::tar_read(df_all_data_formatted)|>
pase_cutter(drop.pase = TRUE) |>
dplyr::filter(!is.na(pase_change))|>
dplyr::filter(event.include) |>
# dplyr::select(-event.include)|>
dplyr::mutate(event = dplyr::if_else(grepl("^death", event), "death", event)) |>
dplyr::select(event) |>
dplyr::filter(!is.na(event)) |>
gtsummary::tbl_summary()
) |>
setNames(c("During trial", "All events", "Selected events", "Considered", "Included"))
ls[4] |>
purrr::map(\(.x) .x |>
mask_micro_summary(micro.n = 5)) |>
tbl_merged_named()
targets::tar_read(df_all_data_formatted)|>
pase_cutter(drop.pase = TRUE) |>
dplyr::filter(!is.na(pase_change))|>
dplyr::filter(event.include) |>
# dplyr::select(-event.include)|>
dplyr::mutate(event = dplyr::case_when(grepl("^death", event)~"Mors",
grepl("^DI6", event)~ "DI61-4",
.default = event)) |>
dplyr::select(event) |>
dplyr::filter(!is.na(event)) |>
gtsummary::tbl_summary() |> mask_micro_summary(micro.n = 5)
targets::tar_read(df_event_data) |>
pase_cutter(drop.pase = TRUE) |>
dplyr::filter(!is.na(pase_change)) |>
events_table(by="pase_change")
# Code from: sex_events.qmd
targets::tar_config_set(store = here::here("_targets"))
source(here::here("R/functions.R"))
source(here::here("R/glmnet-reg.R"))
library(targets)
library(tidyverse)
df <- targets::tar_read(df_all_data_formatted) |>
get_vars(vars.groups = c("clin","lifestyle.events","ses", "ssri")) |>
dplyr::rename(status=status.all,
time=time.all)
df |>
pase_cutter(drop.nas = TRUE,drop.pase = TRUE) |>
dplyr::mutate(reg_female=factor(ifelse(reg_female,"Female","Male"))) |>
(\(.x) {
split(.x, .x$reg_female)
})() |> lapply(\(.x) {
ls <- list("Univariate"=.x |> dplyr::select(-reg_female,-rtreat) |>
standard_multi_cox_table(all.vars = FALSE) |> gtsummary::add_nevent(),
"Multivariate"=.x |> dplyr::select(-reg_female,-rtreat) |>
standard_multi_cox_table(all.vars = TRUE) |> gtsummary::add_nevent())|>
purrr::map(gtsummary::bold_p) |>
tbl_merged_named()
ls |>
gtsummary::modify_table_body(~filter(.x, variable == "pase_change"))
}) |>
(\(.x) {
gtsummary::tbl_stack(.x,group_header=names(.x))
})()
# Code from: ssri_events.qmd
targets::tar_config_set(store = here::here("_targets"))
source(here::here("R/functions.R"))
source(here::here("R/glmnet-reg.R"))
library(targets)
library(tidyverse)
df <- targets::tar_read(df_all_data_formatted) |>
get_vars(vars.groups = c("clin","lifestyle.events","ses", "ssri")) |>
dplyr::rename(status=status.all,
time=time.all)
df |>
dplyr::select(#-event.include,
-rtreat_placebo)|>
labelling_data() |>
gtsummary::tbl_summary(by=rtreat) |>
gtsummary::add_overall() #|>
# mask_micro_summary()
df |>
dplyr::select(
-rtreat_placebo,
-pase_4#,
# -reg_bmi
) |>
cox_regression(outcome.var = "rtreat",use.strata = FALSE) |>
gtsummary::tbl_regression(exponentiate = TRUE,
add_estimate_to_reference_rows = TRUE,
show_single_row = where(is.logical)) |>
gtsummary::bold_p() |>
fix_labels()
df |>
dplyr::select(-rtreat_placebo) |>
cox_regression(outcome.var = "rtreat",all.vars = FALSE, use.strata = TRUE,include_formula = TRUE) |>
plot_survival_smooth()
df |>
pase_cutter(drop.nas = TRUE,drop.pase = TRUE) |>
(\(.x) {
split(.x, .x$rtreat)
})() |> lapply(\(.x) {
ls <- list("Univariate"=.x |> dplyr::select(-rtreat_placebo, -rtreat) |>
standard_multi_cox_table(all.vars = FALSE),
"Multivariate"=.x |> dplyr::select(-rtreat_placebo, -rtreat) |>
standard_multi_cox_table(all.vars = TRUE))|>
purrr::map(gtsummary::bold_p) |>
tbl_merged_named()
ls |>
gtsummary::modify_table_body(~filter(.x, variable == "pase_change"))
}) |> tbl_stack_named()
# gtsummary::tbl_stack(group_header=levels(factor(df$rtreat)))