## ============================================================================= ## Header ## ============================================================================= source("function_trans_cols.R") if (trans_vars==TRUE){ # If trans_vars flag is TRUE, transform specified variables dta<-trans_cols(dta_backup,sqrts=sqrt_vars,log1ps = log1p_vars_all) } else {dta<-dta_backup} library(dplyr) source("function_back_trans.R") ## ============================================================================= ## Loop ## ============================================================================= bm_list<-list() for (i in 1:length(outs)){ ## Bivariate dta_l<-dta|> dplyr::select(all_of(c("active_treat",vars,outs[i]))) sel<-dta_l|> sapply(is.factor) # i=1 biv<-dta_l|> tbl_uvregression(data=_, y=outs[i], method=lm, label = lab_sel(labels_all,vars), show_single_row=colnames(dta_l)[sel], estimate_fun = ~style_sigfig(.x,digits = 3), pvalue_fun = ~style_pvalue(.x, digits = 3) ) |> add_global_p()|> bold_p() #|> # bold_labels() |> # italicize_levels() # ## What follows is the pragmatic transformation and reformatting # # ## Transforming log1p() to expm1() # biv$table_body$estimate<-expm1(biv$table_body$estimate) # biv$table_body$conf.low<-expm1(biv$table_body$conf.low) # biv$table_body$conf.high<-expm1(biv$table_body$conf.high) # # ## Transforming sqrt() to pase_0^2 # biv$table_body$estimate[biv$table_body$variable=="pase_0"]<- # -biv$table_body$estimate[biv$table_body$variable=="pase_0"]^2 # # low<-biv$table_body$conf.low[biv$table_body$variable=="pase_0"]^2 # high<-biv$table_body$conf.high[biv$table_body$variable=="pase_0"]^2 # # biv$table_body$conf.low[biv$table_body$variable=="pase_0"]<-(-low) # biv$table_body$conf.high[biv$table_body$variable=="pase_0"]<-(-high) # # ## Transforming log1p() to expm1() # biv$table_body$estimate[biv$table_body$variable=="nihss_0"]<- # expm1(biv$table_body$estimate[biv$table_body$variable=="nihss_0"]) # # low<-expm1(biv$table_body$conf.low[biv$table_body$variable=="nihss_0"]) # high<-expm1(biv$table_body$conf.high[biv$table_body$variable=="nihss_0"]) # # biv$table_body$conf.low[biv$table_body$variable=="nihss_0"]<-low # biv$table_body$conf.high[biv$table_body$variable=="nihss_0"]<-high # # ## New confidence intervals # # biv$table_body$estimate<-format(biv$table_body$estimate, drop0trailing = F,digits =2) # biv$table_body$ci<-paste(formatC(biv$table_body$conf.low, digits = 3, format = "f"), # formatC(biv$table_body$conf.high, digits = 3, format = "f"), # sep=", ") ## multivariate mul<-dta_l |> lm(formula(paste(c(outs[i],"."),collapse="~")), data = _) |> tbl_regression(label = lab_sel(labels_all,vars), show_single_row=colnames(dta_l)[sel], estimate_fun = ~style_sigfig(.x,digits = 3), pvalue_fun = ~style_pvalue(.x, digits = 3) )|> add_n() |> add_global_p() |> bold_p() #|> # bold_labels() |> # italicize_levels() if (trans_back==TRUE){ ls<-lapply(list(biv,mul), back_trans, outm = "log1p" ,sqrts = "pase_0",log1ps = "nihss_0") } else {ls<-list(biv,mul)} ## Merge biv_mul<-tbl_merge( tbls = ls, tab_spanner = c("**Bivariate linear regression**", "**Multivariate linear regression**") ) bm_list[[i]]<-biv_mul } ## ============================================================================= ## Big merge ## ============================================================================= if (trans_back==TRUE){tab_span<-c("**One month follow up [TRANS t/r]**", "**Six months follow up [TRANS t/r]**") } else {tab_span<-c("**One month follow up**", "**Six months follow up**")} bm_16_tbl<-tbl_merge( tbls = bm_list, tab_spanner = tab_span ) bm_16_tbl fnm<-"bm_16_tbl" if (trans_vars==TRUE){fnm<-paste0(fnm,"_trans")} if (trans_back==TRUE){fnm<-paste0(fnm,"_back")} bm_16_tbl_rtf <- file(paste0(fnm,".RTF"), "w") writeLines(bm_16_tbl%>%as_gt()%>%as_rtf(), bm_16_tbl_rtf) close(bm_16_tbl_rtf) bm_16_tbl %>% # build gtsummary table as_gt() %>% # convert to gt table gt::gtsave( # save table as image filename = paste0(fnm,".png") )