Compare commits
No commits in common. "5e5861602677210a9c181bb24f0d36a13ebd614e" and "2d7f0fc1865687d0f6d3cbcdd49ebd635cbf1595" have entirely different histories.
5e58616026
...
2d7f0fc186
7
.gitignore
vendored
7
.gitignore
vendored
@ -45,10 +45,3 @@ docs/
|
||||
# translation temp files
|
||||
po/*~
|
||||
|
||||
# Customs
|
||||
*.RTF
|
||||
*.png
|
||||
*.html
|
||||
*.zip
|
||||
*.pdf
|
||||
*.csv
|
||||
|
197
00 master.R
197
00 master.R
@ -1,197 +0,0 @@
|
||||
|
||||
## =============================================================================
|
||||
## Notes
|
||||
## =============================================================================
|
||||
|
||||
# Regression analysis relies on the script biv_mul_man.R and two functions: function_reg_table.R and function_trans_table.R
|
||||
#
|
||||
# Tables are exported as csv-files. gtsummary has been tried, but performance and flexibility was not op to the task.
|
||||
# Dependencies has been minimised to primarily use base-R and a tiny bit of dplyr.
|
||||
#
|
||||
# Focus has been on universal functions, and the amount of flags has accumulated...
|
||||
#
|
||||
# Only retransformation is performed on independent variables (these are not marked in the exported tables).
|
||||
# Coefs and CIs are transformed according to this:
|
||||
# https://stats.stackexchange.com/questions/93089/reporting-regression-statistics-after-logarithmic-transformation to allow for interpretation.
|
||||
|
||||
## =============================================================================
|
||||
## Table 1
|
||||
## =============================================================================
|
||||
|
||||
source("data_format.R")
|
||||
|
||||
source("table_1.R")
|
||||
|
||||
tbl_1
|
||||
|
||||
## =============================================================================
|
||||
## Primary regression analysis
|
||||
## =============================================================================
|
||||
|
||||
source("data_format.R")
|
||||
|
||||
outs<-c("mdi_1_enr","mdi_6_newobs_enr")
|
||||
|
||||
lbl_x <- NULL # Extra label in file name
|
||||
|
||||
inter_reg <- NULL # Interaction variables to include (only multivariate)
|
||||
|
||||
biv_mul <- TRUE # Sets flag for both bivariate and multivariate or only multivariate analysis
|
||||
|
||||
strat_var <- NULL # Variable to stratify by. Only one variable(!)
|
||||
|
||||
trans_vars <- TRUE # Transform variables? T/F
|
||||
|
||||
sqrt_vars<-"pase_0" # Variables to sqrt-transfom
|
||||
log1p_vars<-"nihss_0" # Variables to log1p-transform, not outcome
|
||||
log_vars <- NULL # Variables to log-transform
|
||||
|
||||
log1p_vars_all<-c(log1p_vars,outs) # All variables to log1p-transform, incl outcome
|
||||
|
||||
trans_back <- TRUE # Back transform variables? T/F
|
||||
|
||||
print_tbl <- TRUE # Print tables? T/F
|
||||
|
||||
# source("biv_mul.R")
|
||||
|
||||
source("biv_mul_man.R")
|
||||
|
||||
export
|
||||
|
||||
# bm_16_tbl
|
||||
|
||||
strat_var <- "active_treat" # Variable to stratify by. Only one variable(!)
|
||||
|
||||
# source("biv_mul.R")
|
||||
|
||||
source("biv_mul_man.R")
|
||||
|
||||
export
|
||||
# bm_16_tbl
|
||||
|
||||
## =============================================================================
|
||||
## Sensitivity regression analysis
|
||||
## =============================================================================
|
||||
|
||||
source("data_format.R")
|
||||
|
||||
outs<-c("mdi_1","mdi_6")
|
||||
|
||||
lbl_x <- "_sens" # Extra label in file name
|
||||
|
||||
inter_reg <- NULL # Interaction variables to include (only multivariate)
|
||||
|
||||
biv_mul <- TRUE # Sets flag for both bivariate and multivariate or only multivariate analysis
|
||||
|
||||
strat_var <- NULL # Variable to stratify by. Only one variable(!)
|
||||
|
||||
trans_vars <- TRUE # Transform variables? T/F
|
||||
|
||||
sqrt_vars<-"pase_0" # Variables to sqrt-transfom
|
||||
log1p_vars<-"nihss_0" # Variables to log1p-transform, not outcome
|
||||
log_vars <- NULL # Variables to log-transform
|
||||
|
||||
log1p_vars_all<-c(log1p_vars,outs) # All variables to log1p-transform, incl outcome
|
||||
|
||||
trans_back <- TRUE # Back transform variables? T/F
|
||||
|
||||
print_tbl <- TRUE # Print tables? T/F
|
||||
|
||||
# source("biv_mul.R")
|
||||
|
||||
source("biv_mul_man.R")
|
||||
|
||||
# rbind("One month",bm_list[[1]][-1],"Six month",bm_list[[2]][-1])
|
||||
|
||||
# bm_16_tbl
|
||||
|
||||
strat_var <- "active_treat" # Variable to stratify by. Only one variable(!)
|
||||
|
||||
# source("biv_mul.R")
|
||||
|
||||
source("biv_mul_man.R")
|
||||
|
||||
# bm_16_tbl
|
||||
|
||||
|
||||
## =============================================================================
|
||||
## Interaction regression analysis
|
||||
## =============================================================================
|
||||
|
||||
source("data_format.R")
|
||||
|
||||
outs<-c("mdi_1_enr","mdi_6_newobs_enr")
|
||||
|
||||
lbl_x <- "_inter" # Extra label in file name
|
||||
|
||||
inter_reg <- c("active_treat","pase_0") # Interaction variables to include (only multivariate)
|
||||
|
||||
biv_mul <- TRUE # Sets flag for both bivariate and multivariate or only multivariate analysis
|
||||
|
||||
trans_vars <- TRUE # Transform variables? T/F
|
||||
|
||||
strat_var <- NULL # Variable to stratify by. Only one variable(!)
|
||||
|
||||
sqrt_vars<-"pase_0" # Variables to sqrt-transfom
|
||||
log1p_vars<-"nihss_0" # Variables to log1p-transform, not outcome
|
||||
log_vars <- NULL # Variables to log-transform
|
||||
|
||||
log1p_vars_all<-c(log1p_vars,outs) # All variables to log1p-transform, incl outcome
|
||||
|
||||
trans_back <- TRUE # Back transform variables? T/F
|
||||
|
||||
print_tbl <- TRUE # Print tables? T/F
|
||||
|
||||
|
||||
# source("regression_interaction.R")
|
||||
|
||||
source("biv_mul_man.R")
|
||||
|
||||
export
|
||||
|
||||
## =============================================================================
|
||||
## NIHSS~PASE0 regression analysis
|
||||
## =============================================================================
|
||||
|
||||
source("data_format.R")
|
||||
|
||||
vars<-c("pase_0", # New variables for analysis
|
||||
"female",
|
||||
"age",
|
||||
"cohab",
|
||||
"ever_smoker",
|
||||
"diabetes",
|
||||
"hypertension",
|
||||
"afli",
|
||||
"ami",
|
||||
"tci",
|
||||
"pad")
|
||||
|
||||
outs<-c("nihss_0")
|
||||
|
||||
lbl_x <- "_nihss-pase" # Extra label in file name
|
||||
|
||||
inter_reg <- NULL # Interaction variables to include (only multivariate)
|
||||
|
||||
biv_mul <- FALSE # Sets flag for both bivariate and multivariate or only multivariate analysis
|
||||
|
||||
trans_vars <- TRUE # Transform variables? T/F
|
||||
|
||||
strat_var <- NULL # Variable to stratify by. Only one variable(!)
|
||||
|
||||
sqrt_vars<-"pase_0" # Variables to sqrt-transfom
|
||||
log1p_vars<-NULL # Variables to log1p-transform, not outcome
|
||||
log_vars <- NULL # Variables to log-transform
|
||||
|
||||
log1p_vars_all<-c(outs) # All variables to log1p-transform, incl outcome
|
||||
|
||||
trans_back <- TRUE # Back transform variables? T/F
|
||||
|
||||
print_tbl <- TRUE # Print tables? T/F
|
||||
|
||||
# source("regression_nihss-pase.R")
|
||||
|
||||
source("biv_mul_man.R")
|
||||
|
||||
export
|
||||
|
BIN
Archive/.DS_Store
vendored
BIN
Archive/.DS_Store
vendored
Binary file not shown.
@ -1,70 +0,0 @@
|
||||
## =============================================================================
|
||||
## Requirements
|
||||
## =============================================================================
|
||||
|
||||
library(gtsummary)
|
||||
|
||||
## =============================================================================
|
||||
## Loop
|
||||
## =============================================================================
|
||||
|
||||
bm_list_strat<-list()
|
||||
|
||||
for (i in 1:length(outs)){
|
||||
## Bivariate
|
||||
biv<-dta |>
|
||||
dplyr::select(all_of(c("active_treat",vars,outs[i]))) |>
|
||||
tbl_strata(
|
||||
strata = active_treat,
|
||||
.tbl_fun =
|
||||
~ .x %>%
|
||||
tbl_uvregression(data=.,
|
||||
y=outs[i],
|
||||
method=lm,
|
||||
label = lab_sel(labels_all,vars)
|
||||
)|>
|
||||
add_global_p()|>
|
||||
bold_p() |>
|
||||
bold_labels() |>
|
||||
italicize_levels(),
|
||||
.header = "**{strata}**, N = {n}"
|
||||
)
|
||||
|
||||
## Multivariate
|
||||
mul<-dta |>
|
||||
dplyr::select(all_of(c("active_treat",vars,outs[i]))) |>
|
||||
tbl_strata(
|
||||
strata = active_treat,
|
||||
.tbl_fun =
|
||||
~ .x %>%
|
||||
lm(formula(paste(c(outs[i],"."),collapse="~")),
|
||||
data = .) |>
|
||||
tbl_regression(label = lab_sel(labels_all,vars)
|
||||
)|>
|
||||
add_n() |>
|
||||
add_global_p() |>
|
||||
bold_p() |>
|
||||
bold_labels() |>
|
||||
italicize_levels(),
|
||||
.header = "**{strata}**, N = {n}"
|
||||
)
|
||||
|
||||
## Merge
|
||||
biv_mul_strat<-tbl_merge(
|
||||
tbls = list(biv, mul),
|
||||
tab_spanner = c("**Bivariate linear regression**",
|
||||
"**Multivariate linear regression**")
|
||||
)
|
||||
|
||||
bm_list_strat[[i]]<-biv_mul_strat
|
||||
}
|
||||
|
||||
## =============================================================================
|
||||
## Big merge
|
||||
## =============================================================================
|
||||
|
||||
bm_16_tbl_strat<-tbl_merge(
|
||||
tbls = bm_list_strat,
|
||||
tab_spanner = c("**One month follow up**",
|
||||
"**Six months follow up**")
|
||||
)
|
@ -1,35 +0,0 @@
|
||||
## Tests and visualisation
|
||||
source("data_format.R")
|
||||
|
||||
## Box-Cox power transformation performs comparably to logarithmic transformation. The latter is much easier to explain.
|
||||
|
||||
|
||||
library(MASS)
|
||||
dta_bc<-dta_backup|>
|
||||
dplyr::select(all_of(c("mdi_6_newobs_enr",vars)))|>
|
||||
mutate(pase_0=sqrt(pase_0),
|
||||
mdi_6_newobs_enr=mdi_6_newobs_enr+1)#|>
|
||||
# na.omit()
|
||||
|
||||
bc<-boxcox(mdi_6_newobs_enr~.,data=dta_bc)
|
||||
lambda <- bc$x[which.max(bc$y)]
|
||||
|
||||
|
||||
## Q-Q plots to compare the two different approaches, and the non-transformed
|
||||
|
||||
|
||||
q1 <- qqnorm(lm(((mdi_6_newobs_enr^lambda-1)/lambda) ~ .,data=dta_bc)$residuals)
|
||||
|
||||
q2 <- qqnorm(lm(log(mdi_6_newobs_enr) ~ .,data=dta_bc)$residuals)
|
||||
library(patchwork)
|
||||
|
||||
plot(q1); plot(q2)
|
||||
|
||||
## Histograms for reference
|
||||
|
||||
|
||||
h1 <- hist(dta_bc$pase_0,40); hist(sqrt(dta_bc$pase_0),40)
|
||||
|
||||
h2 <- hist(log(dta_bc$mdi_6_newobs_enr),40); hist((dta_bc$mdi_6_newobs_enr),40) ## Observed MDI, and log transformed MDI
|
||||
|
||||
plot(h1); plot(h2)
|
@ -1,507 +0,0 @@
|
||||
---
|
||||
title: "revised statistics"
|
||||
author: "AGDamsbo"
|
||||
date: "8/1/2022"
|
||||
output: html_document
|
||||
toc: true
|
||||
---
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE)
|
||||
```
|
||||
|
||||
```{r}
|
||||
library(REDCapR)
|
||||
library(gtsummary)
|
||||
theme_gtsummary_compact()
|
||||
library(REDCapR)
|
||||
library(gt)
|
||||
|
||||
library(lubridate)
|
||||
library(dplyr)
|
||||
library(tidyr)
|
||||
|
||||
```
|
||||
|
||||
# Import
|
||||
|
||||
|
||||
```{r}
|
||||
dta_all<-read.csv("/Volumes/Data/depression/dep_dataset.csv")
|
||||
```
|
||||
|
||||
# Defining patients to include for analysis
|
||||
Only including cases with complete pase_0 and MDI at 1 & 6 months
|
||||
```{r}
|
||||
dta<-dta_all[!is.na(dta_all$pase_0),]
|
||||
# &!is.na(dta$mdi_1)&!is.na(dta$mdi_6)
|
||||
```
|
||||
|
||||
## Formatting
|
||||
```{r echo=FALSE}
|
||||
dta$diabetes<-factor(dta$diabetes)
|
||||
dta$pad<-factor(dta$pad)
|
||||
|
||||
dta$cohab<-ifelse(dta$civil=="partner","yes","no")|>
|
||||
factor()
|
||||
|
||||
dta$hypertension<-factor(dta$hypertension)
|
||||
|
||||
dta$afli[dta$afli=="unknown"]<-NA
|
||||
dta$afli<-factor(dta$afli)
|
||||
|
||||
dta$ever_smoker<-ifelse(dta$smoke_ever=="ever","yes","no")|>
|
||||
factor()
|
||||
|
||||
dta$ami<-factor(dta$ami)
|
||||
dta$tci<-factor(dta$tci)
|
||||
dta$thrombolysis<-factor(dta$thrombolysis)
|
||||
dta$thrombechtomy<-factor(dta$thrombechtomy)
|
||||
|
||||
dta$any_reperf<-ifelse(dta$rep_any=="rep","yes","no")|>
|
||||
factor()
|
||||
|
||||
dta$pad<-factor(dta$pad)
|
||||
dta$nihss_0<-as.numeric(dta$nihss_0)
|
||||
dta$age<-as.numeric(dta$age)
|
||||
|
||||
dta$active_treat<-ifelse(dta$rtreat=="Active","yes","no")|>
|
||||
factor()
|
||||
# dta$rtreat<-factor(dta$rtreat)
|
||||
|
||||
dta$female<-ifelse(dta$sex=="female","yes","no")|>
|
||||
factor()
|
||||
|
||||
dta$pase_0<-as.numeric(dta$pase_0)
|
||||
dta$pase_6<-as.numeric(dta$pase_6)
|
||||
dta$bmi<-as.numeric(dta$bmi)
|
||||
dta$mdi_6<-as.numeric(dta$mdi_6)
|
||||
dta$pase_0_bin<-factor(dta$pase_0_bin,levels=c("lower","higher"))
|
||||
|
||||
dta$nihss_0_isna<-is.na(dta$nihss_0)
|
||||
```
|
||||
|
||||
```{r}
|
||||
vars<-c("pase_0",
|
||||
"female",
|
||||
"age",
|
||||
"cohab",
|
||||
"ever_smoker",
|
||||
"diabetes",
|
||||
"hypertension",
|
||||
"afli",
|
||||
"ami",
|
||||
"tci",
|
||||
"pad",
|
||||
"nihss_0",
|
||||
"any_reperf")
|
||||
|
||||
# tbl1_vars<-c("thrombolysis", "thrombechtomy","inc_time")
|
||||
|
||||
labels_all<-list(active_treat~"Active trial treatment",
|
||||
pase_0~"PASE score",
|
||||
age~"Age",
|
||||
female~"Female sex",
|
||||
ever_smoker~"History of smoking",
|
||||
cohab~"Cohabitation",
|
||||
diabetes~"Known diabetes",
|
||||
hypertension~"Known hypertension",
|
||||
afli~"Known Atrialfibrillation",
|
||||
ami~"Previos myocardial infarction",
|
||||
tci~"Previos TIA",
|
||||
pad~"Known peripheral arteriosclerotic disease",
|
||||
nihss_0~"NIHSS score",
|
||||
thrombolysis~"Thrombolytic therapy",
|
||||
thrombechtomy~"Endovascular treatment",
|
||||
any_reperf~"Any reperfusion treatment",
|
||||
inc_time~"Study inclusion time",
|
||||
'[Intercept]'~"Intercept")
|
||||
|
||||
lab_sel<-function(label_list,variables_vector){
|
||||
## Helper function to select labels for gtsummary function from list of all labels based on selected variables.
|
||||
## Long names in try to ease reading.
|
||||
include_index<-c()
|
||||
for (i in 1:length(label_list)) {
|
||||
include_index[i]<-as.character(label_list[[i]])[2] %in% variables_vector
|
||||
}
|
||||
return(label_list[include_index])
|
||||
}
|
||||
|
||||
dta_backup<-dta
|
||||
```
|
||||
|
||||
# Table 1
|
||||
```{r}
|
||||
tbl1_vars<-c("active_treat",vars,"inc_time")
|
||||
|
||||
dta|>
|
||||
tbl_summary(missing = "ifany",
|
||||
include = all_of(tbl1_vars),
|
||||
missing_text="(Missing)",
|
||||
label = lab_sel(labels_all,tbl1_vars)
|
||||
)|>
|
||||
add_n()|>
|
||||
as_gt() |>
|
||||
# modify with gt functions
|
||||
gt::tab_header("Baseline Characteristics") |>
|
||||
gt::tab_options(
|
||||
table.font.size = "small",
|
||||
data_row.padding = gt::px(1))
|
||||
```
|
||||
|
||||
|
||||
# Regression - all
|
||||
|
||||
```{r}
|
||||
outs<-c("mdi_1_enr","mdi_6_newobs_enr")
|
||||
```
|
||||
|
||||
## Non-stratified
|
||||
|
||||
```{r}
|
||||
source("biv_mul.R")
|
||||
|
||||
bm_16_tbl_rtf <- file("bm_16_tbl.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 = "bm_16_tbl.png"
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
## Stratified by treatment
|
||||
|
||||
```{r}
|
||||
source("biv_mul_strat.R")
|
||||
|
||||
bm_16_tbl_strat_rtf <- file("bm_16_tbl_strat.RTF", "w")
|
||||
writeLines(bm_16_tbl_strat%>%as_gt()%>%as_rtf(), bm_16_tbl_strat_rtf)
|
||||
close(bm_16_tbl_strat_rtf)
|
||||
|
||||
bm_16_tbl_strat %>% # build gtsummary table
|
||||
as_gt() %>% # convert to gt table
|
||||
gt::gtsave( # save table as image
|
||||
filename = "bm_16_tbl_strat.png"
|
||||
)
|
||||
```
|
||||
|
||||
# Regression - sensitivity
|
||||
|
||||
```{r}
|
||||
outs<-c("mdi_1","mdi_6")
|
||||
```
|
||||
|
||||
## Non-stratified
|
||||
|
||||
```{r}
|
||||
source("biv_mul.R")
|
||||
|
||||
bm_16_sens_tbl_rtf <- file("bm_16_sens_tbl.RTF", "w")
|
||||
writeLines(bm_16_tbl%>%as_gt()%>%as_rtf(), bm_16_sens_tbl_rtf)
|
||||
close(bm_16_sens_tbl_rtf)
|
||||
|
||||
bm_16_tbl %>% # build gtsummary table
|
||||
as_gt() %>% # convert to gt table
|
||||
gt::gtsave( # save table as image
|
||||
filename = "bm_16_tbl_sens.png"
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
## Stratified by treatment
|
||||
|
||||
```{r}
|
||||
source("biv_mul_strat.R")
|
||||
|
||||
bm_16_tbl_strat_sens_rtf <- file("bm_16_tbl_strat_sens.RTF", "w")
|
||||
writeLines(bm_16_tbl_strat%>%as_gt()%>%as_rtf(), bm_16_tbl_strat_sens_rtf)
|
||||
close(bm_16_tbl_strat_sens_rtf)
|
||||
|
||||
bm_16_tbl_strat %>% # build gtsummary table
|
||||
as_gt() %>% # convert to gt table
|
||||
gt::gtsave( # save table as image
|
||||
filename = "bm_16_tbl_strat_sens.png"
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
# Regression - interaction
|
||||
|
||||
```{r}
|
||||
outs<-c("mdi_1_enr","mdi_6_newobs_enr")
|
||||
```
|
||||
|
||||
```{r}
|
||||
## =============================================================================
|
||||
## Loop
|
||||
## =============================================================================
|
||||
|
||||
bm_list<-list()
|
||||
|
||||
for (i in 1:length(outs)){
|
||||
## Multivariate
|
||||
mul<-dta |>
|
||||
dplyr::select(all_of(c("active_treat",vars,outs[i])))|>
|
||||
lm(formula(
|
||||
paste(c(paste(c(outs[i],paste(c("active_treat","pase_0"),collapse="*")),collapse="~"),"."),collapse="+")),
|
||||
data = _)|>
|
||||
tbl_regression(label = lab_sel(labels_all,c(vars,"active_treat")))|>
|
||||
add_n() |>
|
||||
add_global_p() |>
|
||||
bold_p() |>
|
||||
bold_labels() |>
|
||||
italicize_levels()
|
||||
|
||||
bm_list[[i]]<-mul
|
||||
}
|
||||
|
||||
## =============================================================================
|
||||
## Big merge
|
||||
## =============================================================================
|
||||
|
||||
tbl_merge(
|
||||
tbls = bm_list,
|
||||
tab_spanner = c("**One month follow up**",
|
||||
"**Six months follow up**")
|
||||
)
|
||||
```
|
||||
|
||||
```{r}
|
||||
library(aod)
|
||||
|
||||
for (i in 1:length(outs)){
|
||||
model<-dta |>
|
||||
dplyr::select(all_of(c("active_treat",vars,outs[i])))|>
|
||||
lm(formula(
|
||||
paste(c(paste(c(outs[i],paste(c("active_treat","pase_0"),collapse="*")),collapse="~"),"."),collapse="+")),
|
||||
data = _)
|
||||
|
||||
wt<-wald.test(Sigma = vcov(model),
|
||||
b = coef(model),
|
||||
Terms = model$rank # Rank gives number of coefficients. The interaction is the last.
|
||||
)
|
||||
print(wt)
|
||||
}
|
||||
```
|
||||
|
||||
# Regression - nihss ~ pase_0
|
||||
|
||||
```{r}
|
||||
vars_nihss<-c(
|
||||
"pase_0",
|
||||
"female",
|
||||
"age",
|
||||
"cohab",
|
||||
"ever_smoker",
|
||||
"diabetes",
|
||||
"hypertension",
|
||||
"afli",
|
||||
"ami",
|
||||
"tci",
|
||||
"pad",
|
||||
"nihss_0")
|
||||
|
||||
## Bivariate
|
||||
biv<-dta|>
|
||||
dplyr::select(all_of(vars_nihss))|>
|
||||
tbl_uvregression(data=_,
|
||||
y="nihss_0",
|
||||
method=lm#,
|
||||
#label = lab_sel(labels_all,vars)
|
||||
) |>
|
||||
add_global_p()|>
|
||||
bold_p() |>
|
||||
bold_labels() |>
|
||||
italicize_levels()
|
||||
|
||||
## Multivariate
|
||||
mul<-dta |>
|
||||
dplyr::select(all_of(vars_nihss))|>
|
||||
lm(nihss_0~pase_0+.,
|
||||
data = _) |>
|
||||
tbl_regression(
|
||||
#label = lab_sel(labels_all,vars),
|
||||
#intercept=FALSE
|
||||
)|>
|
||||
add_n() |>
|
||||
add_global_p() |>
|
||||
bold_p() |>
|
||||
bold_labels() |>
|
||||
italicize_levels()
|
||||
|
||||
## Merge
|
||||
tbl_merge(
|
||||
tbls = list(biv, mul),
|
||||
tab_spanner = c("**Bivariate linear regression**",
|
||||
"**Multivariate linear regression**")
|
||||
)
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
# Transformed data
|
||||
```{r}
|
||||
|
||||
# dta<-dta_backup
|
||||
dta<-dta|>
|
||||
mutate(pase_0=sqrt(pase_0),
|
||||
nihss_0=log1p(nihss_0),
|
||||
mdi_1_enr=log1p(mdi_1_enr), # log1p(x) svarer til log(x+1)
|
||||
mdi_6_newobs_enr=log1p(mdi_6_newobs_enr))|>
|
||||
data.frame()
|
||||
|
||||
library(dplyr)
|
||||
# source("biv_mul.R")
|
||||
|
||||
```
|
||||
|
||||
```{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]
|
||||
) |>
|
||||
add_global_p()|>
|
||||
bold_p() |>
|
||||
bold_labels() |>
|
||||
italicize_levels()
|
||||
|
||||
## What follows is the pragmatic transformation and reformatting
|
||||
|
||||
## Transforming log2() to 2^()
|
||||
# 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(pase_0) 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"]<-high
|
||||
# biv$table_body$conf.high[biv$table_body$variable=="pase_0"]<-low
|
||||
#
|
||||
# ## 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=", ")
|
||||
|
||||
# biv$table_body$ci<-paste(format(biv$table_body$conf.low, digits = 2, drop0trailing = FALSE),
|
||||
# format(biv$table_body$conf.high, digits = 2, drop0trailing = FALSE),
|
||||
# sep=", ")
|
||||
|
||||
# Formatting from this: https://stackoverflow.com/questions/12243071/r-keeping-0-0-when-using-paste-or-paste0
|
||||
|
||||
## 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]
|
||||
)|>
|
||||
add_n() |>
|
||||
add_global_p() |>
|
||||
bold_p() |>
|
||||
bold_labels() |>
|
||||
italicize_levels()
|
||||
|
||||
## Merge
|
||||
biv_mul<-tbl_merge(
|
||||
tbls = list(biv, mul),
|
||||
tab_spanner = c("**Bivariate linear regression**",
|
||||
"**Multivariate linear regression**")
|
||||
)
|
||||
|
||||
bm_list[[i]]<-biv_mul
|
||||
}
|
||||
|
||||
## =============================================================================
|
||||
## Big merge
|
||||
## =============================================================================
|
||||
|
||||
bm_16_tbl<-tbl_merge(
|
||||
tbls = bm_list,
|
||||
tab_spanner = c("**One month follow up**",
|
||||
"**Six months follow up**")
|
||||
)
|
||||
bm_16_tbl
|
||||
```
|
||||
|
||||
|
||||
```{r}
|
||||
bm_16_tbl_rtf <- file("bm_16_tbl_trans.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 = "bm_16_tbl_trans.png"
|
||||
)
|
||||
```
|
||||
|
||||
## Tests and visualisation
|
||||
|
||||
Box-Cox power transformation performs comparably to logarithmic transformation. The latter is much easier to explain.
|
||||
|
||||
```{r}
|
||||
library(MASS)
|
||||
dta_bc<-dta_backup|>
|
||||
dplyr::select(all_of(c("mdi_6_newobs_enr",vars)))|>
|
||||
mutate(pase_0=sqrt(pase_0),
|
||||
mdi_6_newobs_enr=mdi_6_newobs_enr+1)#|>
|
||||
# na.omit()
|
||||
|
||||
bc<-boxcox(mdi_6_newobs_enr~.,data=dta_bc)
|
||||
lambda <- bc$x[which.max(bc$y)]
|
||||
```
|
||||
|
||||
Q-Q plots to compare the two different approaches, and the non-transformed
|
||||
|
||||
```{r}
|
||||
qqnorm(lm(((mdi_6_newobs_enr^lambda-1)/lambda) ~ .,data=dta_bc)$residuals)
|
||||
|
||||
qqnorm(lm(log(mdi_6_newobs_enr) ~ .,data=dta_bc)$residuals)
|
||||
```
|
||||
|
||||
Histograms for reference
|
||||
|
||||
```{r}
|
||||
hist(dta$pase_0,40); hist(sqrt(dta$pase_0),40)
|
||||
```
|
||||
|
||||
```{r}
|
||||
hist(expm1(dta$mdi_6_newobs_enr),40); hist((dta$mdi_6_newobs_enr),40) ## Observed MDI, and log transformed MDI
|
||||
```
|
||||
|
||||
|
||||
|
@ -1,33 +0,0 @@
|
||||
# Regression - sensitivity
|
||||
|
||||
|
||||
outs<-c("mdi_1","mdi_6")
|
||||
|
||||
|
||||
## Non-stratified
|
||||
|
||||
|
||||
source("biv_mul.R")
|
||||
|
||||
bm_16_sens_tbl_rtf <- file("bm_16_sens_tbl.RTF", "w")
|
||||
writeLines(bm_16_tbl%>%as_gt()%>%as_rtf(), bm_16_sens_tbl_rtf)
|
||||
close(bm_16_sens_tbl_rtf)
|
||||
|
||||
bm_16_tbl %>% # build gtsummary table
|
||||
as_gt() %>% # convert to gt table
|
||||
gt::gtsave( # save table as image
|
||||
filename = "bm_16_tbl_sens.png"
|
||||
)
|
||||
|
||||
|
||||
source("biv_mul_strat.R")
|
||||
|
||||
bm_16_tbl_strat_sens_rtf <- file("bm_16_tbl_strat_sens.RTF", "w")
|
||||
writeLines(bm_16_tbl_strat%>%as_gt()%>%as_rtf(), bm_16_tbl_strat_sens_rtf)
|
||||
close(bm_16_tbl_strat_sens_rtf)
|
||||
|
||||
bm_16_tbl_strat %>% # build gtsummary table
|
||||
as_gt() %>% # convert to gt table
|
||||
gt::gtsave( # save table as image
|
||||
filename = "bm_16_tbl_strat_sens.png"
|
||||
)
|
@ -1,34 +0,0 @@
|
||||
|
||||
outs<-c("mdi_1_enr","mdi_6_newobs_enr")
|
||||
|
||||
|
||||
## Non-stratified
|
||||
|
||||
source("biv_mul.R")
|
||||
|
||||
bm_16_tbl_rtf <- file("bm_16_tbl.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 = "bm_16_tbl.png"
|
||||
)
|
||||
|
||||
|
||||
|
||||
## Stratified by treatment
|
||||
|
||||
|
||||
source("biv_mul_strat.R")
|
||||
|
||||
bm_16_tbl_strat_rtf <- file("bm_16_tbl_strat.RTF", "w")
|
||||
writeLines(bm_16_tbl_strat%>%as_gt()%>%as_rtf(), bm_16_tbl_strat_rtf)
|
||||
close(bm_16_tbl_strat_rtf)
|
||||
|
||||
bm_16_tbl_strat %>% # build gtsummary table
|
||||
as_gt() %>% # convert to gt table
|
||||
gt::gtsave( # save table as image
|
||||
filename = "bm_16_tbl_strat.png"
|
||||
)
|
@ -1,139 +0,0 @@
|
||||
## =============================================================================
|
||||
## 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")
|
||||
)
|
||||
|
@ -1,169 +0,0 @@
|
||||
|
||||
|
||||
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 = c("**One month follow up**",
|
||||
"**Six months follow up**")
|
||||
)
|
||||
bm_16_tbl
|
||||
|
||||
|
||||
|
||||
|
||||
bm_16_tbl_rtf <- file("bm_16_tbl_trans_back.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 = "bm_16_tbl_trans_back.png"
|
||||
)
|
||||
|
||||
|
||||
## Tests and visualisation
|
||||
|
||||
## Box-Cox power transformation performs comparably to logarithmic transformation. The latter is much easier to explain.
|
||||
|
||||
|
||||
library(MASS)
|
||||
dta_bc<-dta_backup|>
|
||||
dplyr::select(all_of(c("mdi_6_newobs_enr",vars)))|>
|
||||
mutate(pase_0=sqrt(pase_0),
|
||||
mdi_6_newobs_enr=mdi_6_newobs_enr+1)#|>
|
||||
# na.omit()
|
||||
|
||||
bc<-boxcox(mdi_6_newobs_enr~.,data=dta_bc)
|
||||
lambda <- bc$x[which.max(bc$y)]
|
||||
|
||||
|
||||
## Q-Q plots to compare the two different approaches, and the non-transformed
|
||||
|
||||
|
||||
q1 <- qqnorm(lm(((mdi_6_newobs_enr^lambda-1)/lambda) ~ .,data=dta_bc)$residuals)
|
||||
|
||||
q2 <- qqnorm(lm(log(mdi_6_newobs_enr) ~ .,data=dta_bc)$residuals)
|
||||
library(patchwork)
|
||||
|
||||
plot(q1); plot(q2)
|
||||
|
||||
## Histograms for reference
|
||||
|
||||
|
||||
h1 <- hist(dta$pase_0,40); hist(sqrt(dta$pase_0),40)
|
||||
|
||||
h2 <- hist(expm1(dta$mdi_6_newobs_enr),40); hist((dta$mdi_6_newobs_enr),40) ## Observed MDI, and log transformed MDI
|
||||
|
||||
plot(h1); plot(h2)
|
146
biv_mul.R
146
biv_mul.R
@ -1,146 +0,0 @@
|
||||
## =============================================================================
|
||||
## Requirements
|
||||
## =============================================================================
|
||||
|
||||
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)
|
||||
library(gtsummary)
|
||||
|
||||
source("function_back_trans.R")
|
||||
|
||||
## =============================================================================
|
||||
## Loop
|
||||
## =============================================================================
|
||||
|
||||
bm_list<-list()
|
||||
|
||||
for (i in 1:length(outs)){
|
||||
|
||||
dta_l<-dta|>
|
||||
dplyr::select(all_of(c("active_treat",vars,outs[i]))) # active_treat should be vector
|
||||
|
||||
sel<-dta_l|>
|
||||
sapply(is.factor)
|
||||
|
||||
## Bivariate
|
||||
if (!is.null(strat_var)){biv<-dta_l |>
|
||||
tbl_strata(
|
||||
strata = all_of(strat_var),
|
||||
.tbl_fun =
|
||||
~ .x %>%
|
||||
tbl_uvregression(data=.,
|
||||
y=outs[i],
|
||||
method=lm,
|
||||
label = lab_sel(labels_all,vars),
|
||||
show_single_row=colnames(dta_l)[sel][-1], # excluding the first, active-treatment, as this is strat
|
||||
estimate_fun = ~style_sigfig(.x,digits = 3),
|
||||
pvalue_fun = ~style_pvalue(.x, digits = 3)
|
||||
)|>
|
||||
add_global_p()|>
|
||||
bold_p() |>
|
||||
bold_labels() |>
|
||||
italicize_levels(),
|
||||
.header = "**{strata}**, N = {n}"
|
||||
)
|
||||
} else {
|
||||
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()
|
||||
}
|
||||
|
||||
## Multivariate
|
||||
if (!is.null(strat_var)){
|
||||
mul<-dta_l |>
|
||||
tbl_strata(
|
||||
strata = all_of(strat_var),
|
||||
.tbl_fun =
|
||||
~ .x %>%
|
||||
lm(formula(paste(c(outs[i],"."),collapse="~")),
|
||||
data = .) |>
|
||||
tbl_regression(label = lab_sel(labels_all,vars),
|
||||
show_single_row=colnames(dta_l)[sel][-1], # excluding the first, active-treatment, as this is strat
|
||||
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(),
|
||||
.header = "**{strata}**, N = {n}"
|
||||
)
|
||||
} else {
|
||||
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()
|
||||
}
|
||||
|
||||
# Back transforming if flag set
|
||||
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
|
||||
## =============================================================================
|
||||
|
||||
# Header if back transformed
|
||||
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
|
||||
)
|
||||
|
||||
## =============================================================================
|
||||
## Print
|
||||
## =============================================================================
|
||||
|
||||
# File name depending onstratification, transformation and back transformation
|
||||
if (print_tbl==TRUE){
|
||||
fnm<-paste0("bm_16_tbl",lbl_x)
|
||||
if (!is.null(strat_var)){fnm<-paste0(fnm,"_strat")}
|
||||
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)
|
||||
|
||||
}
|
115
biv_mul_man.R
115
biv_mul_man.R
@ -1,115 +0,0 @@
|
||||
##
|
||||
## NOTES
|
||||
##
|
||||
## Leaving gtsummary as this is slow and a little inflexible.
|
||||
##
|
||||
|
||||
## =============================================================================
|
||||
## Requirements
|
||||
## =============================================================================
|
||||
|
||||
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)
|
||||
library(gtsummary)
|
||||
|
||||
source("function_back_trans.R")
|
||||
|
||||
vars_all<-c("active_treat",vars)
|
||||
|
||||
## =============================================================================
|
||||
## Loop
|
||||
## =============================================================================
|
||||
|
||||
dec <- 3
|
||||
bm_list<-list()
|
||||
|
||||
if (biv_mul){
|
||||
do_biv=TRUE
|
||||
do_mul=TRUE
|
||||
} else {
|
||||
do_biv=FALSE
|
||||
do_mul=TRUE
|
||||
}
|
||||
|
||||
for (i in 1:length(outs)){
|
||||
|
||||
if (!is.null(strat_var)){
|
||||
ls<-split(dta,dta[strat_var])
|
||||
strat_list<-list()
|
||||
|
||||
for (j in 1:length(ls)){
|
||||
X<-ls[[i]][,vars]
|
||||
y <- ls[[i]][,outs[i]]
|
||||
|
||||
# Flagging factors and continous variables
|
||||
#
|
||||
sel_f<-X|>
|
||||
sapply(is.factor)
|
||||
f.names <- colnames(X)[sel_f]
|
||||
|
||||
source("function_reg_table.R")
|
||||
rt<-reg_table(X,y,m.biv=do_biv,m.mul=do_mul,trans.var = trans_vars,sqrt.vars=sqrt_vars,inter.add=inter_reg)
|
||||
|
||||
rt<-rt|>mutate(across(matches('co|lo|hi|pv'),as.numeric))
|
||||
|
||||
rt[,grepl('co|lo|hi|pv',names(rt))] <- sapply( round( rt[,grepl('co|lo|hi|pv',names(rt))], 3 ),formatC, format='f', digits=3 )
|
||||
|
||||
strat_list[[j]] <- rt
|
||||
names(strat_list)[j] <- levels(dta[,strat_var])[j]
|
||||
|
||||
}
|
||||
|
||||
bm_list[[i]] <- cbind(names(strat_list)[1],strat_list[[1]],names(strat_list)[2],strat_list[[2]])
|
||||
names(bm_list)[i] <- outs[i]
|
||||
|
||||
} else {
|
||||
X<-dta[,vars_all]
|
||||
y <- dta[,outs[i]]
|
||||
|
||||
# Flagging factors and continous variables
|
||||
#
|
||||
sel_f<-X|>
|
||||
sapply(is.factor)
|
||||
f.names <- colnames(X)[sel_f]
|
||||
|
||||
source("function_reg_table.R")
|
||||
rt<-reg_table(X,y,m.biv=do_biv,m.mul=do_mul,trans.var = trans_vars,sqrt.vars=sqrt_vars,inter.add=inter_reg)
|
||||
|
||||
rt<-rt|>mutate(across(matches('co|lo|hi|pv'),as.numeric))
|
||||
|
||||
rt[,grepl('co|lo|hi|pv',names(rt))] <- sapply( round( rt[,grepl('co|lo|hi|pv',names(rt))], 3 ),formatC, format='f', digits=3 )
|
||||
|
||||
bm_list[[i]] <- rt
|
||||
names(bm_list)[i] <- outs[i]
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
## =============================================================================
|
||||
## Print
|
||||
## =============================================================================
|
||||
|
||||
# File name depending onstratification, transformation and back transformation
|
||||
if (print_tbl==TRUE){
|
||||
fnm<-paste0("bm_16_tbl",lbl_x)
|
||||
if (!is.null(strat_var)){fnm<-paste0(fnm,"_strat")}
|
||||
if (trans_vars==TRUE){fnm<-paste0(fnm,"_trans")}
|
||||
# if (trans_back==TRUE){fnm<-paste0(fnm,"_back")}
|
||||
|
||||
export<-data.frame()
|
||||
for (i in 1:length(bm_list)){
|
||||
export<-rbind(export,paste(names(bm_list)[i]),bm_list[[i]])
|
||||
}
|
||||
|
||||
write.csv(export,paste0(fnm,".csv"))
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,33 +0,0 @@
|
||||
"","name","pred","co","lo","hi","pv","co.p","lo.p","hi.p"
|
||||
"1","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr"
|
||||
"2","active_treat","active_treat.yes","0.233653892072177","-0.232179668891965","0.699487453036319","0.324864859797705","0.263207210508771","-0.207196331646934","1.01272082910031"
|
||||
"3","pase_0","pase_0","-0.000244585430319758","-0.00187082402407513","0.000143390295747283","0.266354042432291","-0.000244585430319758","-0.00187082402407513","0.000143390295747283"
|
||||
"4","female","female.yes","0.180213913459648","0.0193236851124511","0.341104141806845","0.0282148782420233","0.197473491423575","0.0195115959405863","0.406499708656313"
|
||||
"5","age","age","-0.00615699034671417","-0.0125459725709187","0.000231991877490371","0.0588843723328414","-0.00615699034671417","-0.0125459725709187","0.000231991877490371"
|
||||
"6","cohab","cohab.yes","0.0385997993494245","-0.121911617887899","0.199111216586748","0.636788296013232","0.0393544500801572","-0.114773396757817","0.220317677919905"
|
||||
"7","ever_smoker","ever_smoker.yes","-0.130804728095057","-0.288167087752173","0.0265576315620582","0.103067585262741","-0.122610912897366","-0.250363673274614","0.026913428181286"
|
||||
"8","diabetes","diabetes.yes","0.218436741940986","-0.0112594513032668","0.448132935185239","0.0622889336689862","0.244130312869116","-0.011196300916562","0.565386776803707"
|
||||
"9","hypertension","hypertension.yes","0.0616393238146578","-0.0909735343341647","0.21425218196348","0.427835234030472","0.0635786680438701","-0.0869581251593398","0.238935052475424"
|
||||
"10","afli","afli.yes","-0.151678986134109","-0.353288078026529","0.0499301057583107","0.139996958070073","-0.140735927846055","-0.297625174523839","0.0511976211477106"
|
||||
"11","ami","ami.yes","0.175218683806947","-0.105335118835802","0.455772486449696","0.220374098717126","0.191506751356345","-0.0999771425699263","0.577391426015035"
|
||||
"12","tci","tci.yes","0.0747157782985039","-0.365670936717259","0.515102493314267","0.7390186199739","0.0775778363499326","-0.306268954930611","0.673810047345449"
|
||||
"13","pad","pad.yes","0.150056760624913","-0.237311562420527","0.537425083670353","0.446960209143568","0.161900191037562","-0.211254493727694","0.711593971943397"
|
||||
"14","nihss_0","nihss_0","0.11613724835806","0.00897236714493893","0.22330212957118","0.0337248669412898","0.11613724835806","0.00897236714493893","0.22330212957118"
|
||||
"15","any_reperf","any_reperf.yes","-0.0107151021515006","-0.172236649696012","0.150806445393011","0.89635092823517","-0.0106578999359388","-0.158220057372026","0.162771576504227"
|
||||
"16","active_treat*pase_0+","active_treat*pase_0+","-0.0110727809082654","-0.0493422786913023","0.0271967168747716","0.569968244427194","-0.0110727809082654","-0.0493422786913023","0.0271967168747716"
|
||||
"17","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr"
|
||||
"18","active_treat","active_treat.yes","-0.0564200982921334","-0.623930308211759","0.511090111627492","0.845187999796114","-0.0548580000618283","-0.464165700383232","0.667107538069166"
|
||||
"19","pase_0","pase_0","-0.000976681489563953","-0.00407660143217371","1.80757612451662e-06","0.0601839260699098","-0.000976681489563953","-0.00407660143217371","1.80757612451662e-06"
|
||||
"20","female","female.yes","0.263835454377699","0.0758881335002106","0.451782775255187","0.00603737741261064","0.301913954433282","0.0788418811415876","0.571110627402178"
|
||||
"21","age","age","-0.00707604184801931","-0.0145258759726912","0.000373792276652601","0.0626020368466464","-0.00707604184801931","-0.0145258759726912","0.000373792276652601"
|
||||
"22","cohab","cohab.yes","-0.00811615427982147","-0.197824514236291","0.181592205676648","0.933033500656618","-0.0080833072236699","-0.17948617099948","0.199125097753481"
|
||||
"23","ever_smoker","ever_smoker.yes","-0.000519117102016271","-0.18339011388276","0.182351879678728","0.995551387820496","-0.000518982384045944","-0.167556655320812","0.20003638801342"
|
||||
"24","diabetes","diabetes.yes","-0.0169576554876117","-0.299400688593834","0.26548537761861","0.906128811311326","-0.0168146837437277","-0.258737665440769","0.304063785564845"
|
||||
"25","hypertension","hypertension.yes","0.0997346056783598","-0.0787083358306297","0.278177547187349","0.27262085505285","0.10487765090699","-0.0756905269109551","0.32072066663342"
|
||||
"26","afli","afli.yes","-0.0627807759073845","-0.300670509163122","0.175108957348353","0.604272406167713","-0.0608506647157438","-0.259678338231203","0.191376018712674"
|
||||
"27","ami","ami.yes","0.303152924706539","-0.032166810710295","0.638472660123374","0.0762901279157927","0.354121527246548","-0.0316549617176921","0.893586519331088"
|
||||
"28","tci","tci.yes","-0.695532964813223","-1.21149930597945","-0.179566623646997","0.00835099528356764","-0.501191470265989","-0.70224947454008","-0.164367723781238"
|
||||
"29","pad","pad.yes","0.303632413594264","-0.155473443332633","0.762738270521161","0.194364922678559","0.354770969159139","-0.14399019060515","1.14413942309133"
|
||||
"30","nihss_0","nihss_0","0.133424171870123","0.00625404713700828","0.260594296603237","0.0397906254749111","0.133424171870123","0.00625404713700828","0.260594296603237"
|
||||
"31","any_reperf","any_reperf.yes","-0.0346496766887493","-0.222751967579255","0.153452614201757","0.717519225149966","-0.0340562503960797","-0.199686671668901","0.165852540959894"
|
||||
"32","active_treat*pase_0+","active_treat*pase_0+","-0.0010263702467695","-0.0474599310905048","0.0454071905969658","0.965370876353512","-0.0010263702467695","-0.0474599310905048","0.0454071905969658"
|
|
@ -1,14 +0,0 @@
|
||||
"","name","pred","co","lo","hi","pv","co.p","lo.p","hi.p"
|
||||
"1","nihss_0","nihss_0","nihss_0","nihss_0","nihss_0","nihss_0","nihss_0","nihss_0","nihss_0"
|
||||
"2","active_treat","active_treat.yes","0.002","-0.119","0.123","0.975","0.002","-0.112","0.130"
|
||||
"3","pase_0","pase_0","-0.000","-0.001","0.000","0.067","-0.000","-0.001","0.000"
|
||||
"4","female","female.yes","0.086","-0.050","0.222","0.213","0.090","-0.049","0.249"
|
||||
"5","age","age","0.004","-0.001","0.010","0.127","0.004","-0.001","0.010"
|
||||
"6","cohab","cohab.yes","0.085","-0.049","0.220","0.215","0.089","-0.048","0.246"
|
||||
"7","ever_smoker","ever_smoker.yes","0.008","-0.124","0.140","0.908","0.008","-0.117","0.150"
|
||||
"8","diabetes","diabetes.yes","-0.000","-0.192","0.192","0.999","-0.000","-0.174","0.211"
|
||||
"9","hypertension","hypertension.yes","-0.149","-0.275","-0.022","0.021","-0.138","-0.240","-0.022"
|
||||
"10","afli","afli.yes","0.229","0.063","0.395","0.007","0.258","0.065","0.485"
|
||||
"11","ami","ami.yes","0.034","-0.195","0.263","0.771","0.035","-0.177","0.301"
|
||||
"12","tci","tci.yes","-0.170","-0.535","0.195","0.361","-0.156","-0.414","0.216"
|
||||
"13","pad","pad.yes","-0.273","-0.608","0.062","0.110","-0.239","-0.455","0.063"
|
|
@ -1,31 +0,0 @@
|
||||
"","pred","biv_co","biv_lo","biv_hi","biv_pv","biv_co.p","biv_lo.p","biv_hi.p","mul_co","mul_lo","mul_hi","mul_pv","mul_co.p","mul_lo.p","mul_hi.p"
|
||||
"1","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month"
|
||||
"2","active_treat.yes","0.066","-0.077","0.209","0.367","0.068","-0.074","0.232","0.122","-0.022","0.266","0.096","0.13","-0.022","0.305"
|
||||
"3","afli.yes","-0.159","-0.356","0.037","0.112","-0.147","-0.299","0.038","-0.135","-0.337","0.066","0.188","-0.127","-0.286","0.069"
|
||||
"4","age","-0.002","-0.007","0.004","0.575","-0.002","-0.007","0.004","-0.006","-0.012","0.001","0.073","-0.006","-0.012","0.001"
|
||||
"5","ami.yes","0.143","-0.116","0.402","0.28","0.153","-0.11","0.494","0.166","-0.116","0.447","0.248","0.18","-0.11","0.564"
|
||||
"6","any_reperf.yes","-0.004","-0.151","0.144","0.961","-0.004","-0.141","0.155","-0.024","-0.185","0.138","0.773","-0.023","-0.169","0.147"
|
||||
"7","cohab.yes","0.018","-0.132","0.168","0.814","0.018","-0.124","0.183","0.033","-0.127","0.193","0.687","0.033","-0.12","0.213"
|
||||
"8","diabetes.yes","0.142","-0.083","0.367","0.215","0.153","-0.08","0.444","0.196","-0.036","0.427","0.098","0.216","-0.036","0.533"
|
||||
"9","ever_smoker.yes","-0.093","-0.245","0.059","0.23","-0.089","-0.218","0.061","-0.136","-0.294","0.021","0.09","-0.127","-0.255","0.022"
|
||||
"10","female.yes","0.139","-0.011","0.289","0.07","0.149","-0.011","0.335","0.186","0.025","0.347","0.024","0.204","0.025","0.414"
|
||||
"11","hypertension.yes","0.146","0.003","0.288","0.045","0.157","0.003","0.334","0.071","-0.082","0.223","0.361","0.073","-0.078","0.25"
|
||||
"12","nihss_0","0.069","-0.031","0.169","0.178","0.069","-0.031","0.169","0.09","-0.018","0.198","0.101","0.09","-0.018","0.198"
|
||||
"13","pad.yes","0.16","-0.195","0.515","0.376","0.173","-0.177","0.674","0.166","-0.219","0.551","0.398","0.18","-0.197","0.735"
|
||||
"14","pase_0","-0.001","-0.002","0","0.013","-0.001","-0.002","0","0","-0.002","0","0.105","0","-0.002","0"
|
||||
"15","tci.yes","0.159","-0.291","0.608","0.489","0.172","-0.253","0.837","0.102","-0.336","0.54","0.647","0.107","-0.285","0.715"
|
||||
"16","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month"
|
||||
"17","active_treat.yes","-0.081","-0.246","0.083","0.331","-0.078","-0.218","0.087","-0.054","-0.223","0.114","0.528","-0.053","-0.2","0.121"
|
||||
"18","afli.yes","-0.042","-0.273","0.189","0.719","-0.041","-0.239","0.208","-0.077","-0.317","0.162","0.526","-0.074","-0.271","0.176"
|
||||
"19","age","0.001","-0.005","0.008","0.744","0.001","-0.005","0.008","-0.007","-0.014","0.001","0.069","-0.007","-0.014","0.001"
|
||||
"20","ami.yes","0.156","-0.15","0.463","0.317","0.169","-0.14","0.589","0.312","-0.021","0.645","0.066","0.366","-0.021","0.905"
|
||||
"21","any_reperf.yes","-0.011","-0.181","0.158","0.896","-0.011","-0.165","0.171","-0.021","-0.209","0.166","0.823","-0.021","-0.188","0.181"
|
||||
"22","cohab.yes","-0.108","-0.282","0.066","0.221","-0.103","-0.246","0.068","-0.047","-0.236","0.143","0.629","-0.045","-0.21","0.154"
|
||||
"23","diabetes.yes","-0.021","-0.296","0.253","0.879","-0.021","-0.256","0.288","-0.068","-0.353","0.217","0.641","-0.066","-0.298","0.243"
|
||||
"24","ever_smoker.yes","-0.033","-0.209","0.143","0.714","-0.032","-0.188","0.154","-0.008","-0.191","0.174","0.927","-0.008","-0.174","0.19"
|
||||
"25","female.yes","0.252","0.081","0.423","0.004","0.287","0.084","0.527","0.25","0.062","0.438","0.009","0.284","0.064","0.549"
|
||||
"26","hypertension.yes","0.231","0.067","0.396","0.006","0.26","0.07","0.485","0.122","-0.056","0.301","0.177","0.13","-0.054","0.351"
|
||||
"27","nihss_0","0.13","0.012","0.247","0.031","0.13","0.012","0.247","0.122","-0.005","0.249","0.06","0.122","-0.005","0.249"
|
||||
"28","pad.yes","0.39","-0.03","0.811","0.069","0.478","-0.03","1.25","0.325","-0.132","0.781","0.163","0.384","-0.123","1.184"
|
||||
"29","pase_0","-0.001","-0.003","0","0.014","-0.001","-0.003","0","-0.001","-0.003","0","0.047","-0.001","-0.003","0"
|
||||
"30","tci.yes","-0.637","-1.153","-0.122","0.016","-0.471","-0.684","-0.115","-0.674","-1.186","-0.161","0.01","-0.49","-0.694","-0.149"
|
|
@ -1,29 +0,0 @@
|
||||
"","names(strat_list)[1]","name","pred","biv_co","biv_lo","biv_hi","biv_pv","biv_co.p","biv_lo.p","biv_hi.p","mul_co","mul_lo","mul_hi","mul_pv","mul_co.p","mul_lo.p","mul_hi.p","names(strat_list)[2]","name","pred","biv_co","biv_lo","biv_hi","biv_pv","biv_co.p","biv_lo.p","biv_hi.p","mul_co","mul_lo","mul_hi","mul_pv","mul_co.p","mul_lo.p","mul_hi.p"
|
||||
"1","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr"
|
||||
"2","no","pase_0","pase_0","-0.000","-0.002","0.000","0.226","-0.000","-0.002","0.000","-0.000","-0.002","0.000","0.364","-0.000","-0.002","0.000","yes","pase_0","pase_0","-0.000","-0.002","0.000","0.226","-0.000","-0.002","0.000","-0.000","-0.002","0.000","0.364","-0.000","-0.002","0.000"
|
||||
"3","no","female","female.yes","-0.032","-0.245","0.180","0.765","-0.032","-0.217","0.198","0.025","-0.204","0.255","0.830","0.025","-0.185","0.290","yes","female","female.yes","-0.032","-0.245","0.180","0.765","-0.032","-0.217","0.198","0.025","-0.204","0.255","0.830","0.025","-0.185","0.290"
|
||||
"4","no","age","age","0.001","-0.007","0.009","0.847","0.001","-0.007","0.009","-0.001","-0.010","0.008","0.768","-0.001","-0.010","0.008","yes","age","age","0.001","-0.007","0.009","0.847","0.001","-0.007","0.009","-0.001","-0.010","0.008","0.768","-0.001","-0.010","0.008"
|
||||
"5","no","cohab","cohab.yes","-0.028","-0.235","0.180","0.792","-0.027","-0.210","0.197","0.039","-0.188","0.266","0.736","0.040","-0.171","0.304","yes","cohab","cohab.yes","-0.028","-0.235","0.180","0.792","-0.027","-0.210","0.197","0.039","-0.188","0.266","0.736","0.040","-0.171","0.304"
|
||||
"6","no","ever_smoker","ever_smoker.yes","-0.115","-0.333","0.103","0.301","-0.109","-0.283","0.109","-0.114","-0.341","0.113","0.323","-0.108","-0.289","0.119","yes","ever_smoker","ever_smoker.yes","-0.115","-0.333","0.103","0.301","-0.109","-0.283","0.109","-0.114","-0.341","0.113","0.323","-0.108","-0.289","0.119"
|
||||
"7","no","diabetes","diabetes.yes","0.125","-0.162","0.412","0.392","0.133","-0.149","0.509","0.176","-0.130","0.482","0.259","0.192","-0.122","0.619","yes","diabetes","diabetes.yes","0.125","-0.162","0.412","0.392","0.133","-0.149","0.509","0.176","-0.130","0.482","0.259","0.192","-0.122","0.619"
|
||||
"8","no","hypertension","hypertension.yes","0.064","-0.134","0.262","0.525","0.066","-0.126","0.300","-0.054","-0.272","0.164","0.625","-0.053","-0.238","0.178","yes","hypertension","hypertension.yes","0.064","-0.134","0.262","0.525","0.066","-0.126","0.300","-0.054","-0.272","0.164","0.625","-0.053","-0.238","0.178"
|
||||
"9","no","afli","afli.yes","-0.061","-0.337","0.216","0.665","-0.059","-0.286","0.241","-0.126","-0.418","0.167","0.397","-0.118","-0.342","0.181","yes","afli","afli.yes","-0.061","-0.337","0.216","0.665","-0.059","-0.286","0.241","-0.126","-0.418","0.167","0.397","-0.118","-0.342","0.181"
|
||||
"10","no","ami","ami.yes","0.230","-0.116","0.575","0.192","0.258","-0.110","0.778","0.348","-0.044","0.741","0.082","0.416","-0.043","1.097","yes","ami","ami.yes","0.230","-0.116","0.575","0.192","0.258","-0.110","0.778","0.348","-0.044","0.741","0.082","0.416","-0.043","1.097"
|
||||
"11","no","tci","tci.yes","-0.371","-1.065","0.324","0.295","-0.310","-0.655","0.383","-0.356","-1.044","0.332","0.309","-0.300","-0.648","0.393","yes","tci","tci.yes","-0.371","-1.065","0.324","0.295","-0.310","-0.655","0.383","-0.356","-1.044","0.332","0.309","-0.300","-0.648","0.393"
|
||||
"12","no","pad","pad.yes","0.321","-0.111","0.752","0.145","0.378","-0.105","1.122","0.287","-0.195","0.770","0.241","0.333","-0.177","1.159","yes","pad","pad.yes","0.321","-0.111","0.752","0.145","0.378","-0.105","1.122","0.287","-0.195","0.770","0.241","0.333","-0.177","1.159"
|
||||
"13","no","nihss_0","nihss_0","0.153","0.010","0.297","0.036","0.153","0.010","0.297","0.238","0.083","0.393","0.003","0.238","0.083","0.393","yes","nihss_0","nihss_0","0.153","0.010","0.297","0.036","0.153","0.010","0.297","0.238","0.083","0.393","0.003","0.238","0.083","0.393"
|
||||
"14","no","any_reperf","any_reperf.yes","-0.087","-0.289","0.114","0.396","-0.083","-0.251","0.121","-0.194","-0.417","0.029","0.089","-0.176","-0.341","0.030","yes","any_reperf","any_reperf.yes","-0.087","-0.289","0.114","0.396","-0.083","-0.251","0.121","-0.194","-0.417","0.029","0.089","-0.176","-0.341","0.030"
|
||||
"15","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr"
|
||||
"16","no","pase_0","pase_0","-0.002","-0.006","-0.000","0.007","-0.002","-0.006","-0.000","-0.002","-0.006","0.000","0.059","-0.002","-0.006","0.000","yes","pase_0","pase_0","-0.002","-0.006","-0.000","0.007","-0.002","-0.006","-0.000","-0.002","-0.006","0.000","0.059","-0.002","-0.006","0.000"
|
||||
"17","no","female","female.yes","0.305","0.061","0.549","0.015","0.356","0.063","0.731","0.274","0.002","0.546","0.048","0.315","0.002","0.726","yes","female","female.yes","0.305","0.061","0.549","0.015","0.356","0.063","0.731","0.274","0.002","0.546","0.048","0.315","0.002","0.726"
|
||||
"18","no","age","age","0.000","-0.009","0.009","0.977","0.000","-0.009","0.009","-0.008","-0.019","0.003","0.134","-0.008","-0.019","0.003","yes","age","age","0.000","-0.009","0.009","0.977","0.000","-0.009","0.009","-0.008","-0.019","0.003","0.134","-0.008","-0.019","0.003"
|
||||
"19","no","cohab","cohab.yes","-0.067","-0.325","0.190","0.607","-0.065","-0.277","0.209","-0.102","-0.381","0.178","0.475","-0.097","-0.317","0.195","yes","cohab","cohab.yes","-0.067","-0.325","0.190","0.607","-0.065","-0.277","0.209","-0.102","-0.381","0.178","0.475","-0.097","-0.317","0.195"
|
||||
"20","no","ever_smoker","ever_smoker.yes","0.103","-0.145","0.351","0.413","0.109","-0.135","0.420","0.098","-0.163","0.359","0.460","0.103","-0.150","0.432","yes","ever_smoker","ever_smoker.yes","0.103","-0.145","0.351","0.413","0.109","-0.135","0.420","0.098","-0.163","0.359","0.460","0.103","-0.150","0.432"
|
||||
"21","no","diabetes","diabetes.yes","0.080","-0.339","0.498","0.709","0.083","-0.287","0.645","0.079","-0.343","0.500","0.713","0.082","-0.290","0.649","yes","diabetes","diabetes.yes","0.080","-0.339","0.498","0.709","0.083","-0.287","0.645","0.079","-0.343","0.500","0.713","0.082","-0.290","0.649"
|
||||
"22","no","hypertension","hypertension.yes","0.285","0.047","0.523","0.019","0.330","0.049","0.686","0.158","-0.103","0.419","0.235","0.171","-0.098","0.520","yes","hypertension","hypertension.yes","0.285","0.047","0.523","0.019","0.330","0.049","0.686","0.158","-0.103","0.419","0.235","0.171","-0.098","0.520"
|
||||
"23","no","afli","afli.yes","-0.079","-0.404","0.245","0.631","-0.076","-0.332","0.278","-0.076","-0.411","0.259","0.655","-0.073","-0.337","0.296","yes","afli","afli.yes","-0.079","-0.404","0.245","0.631","-0.076","-0.332","0.278","-0.076","-0.411","0.259","0.655","-0.073","-0.337","0.296"
|
||||
"24","no","ami","ami.yes","0.203","-0.254","0.661","0.382","0.225","-0.225","0.936","0.178","-0.326","0.682","0.488","0.195","-0.278","0.977","yes","ami","ami.yes","0.203","-0.254","0.661","0.382","0.225","-0.225","0.936","0.178","-0.326","0.682","0.488","0.195","-0.278","0.977"
|
||||
"25","no","tci","tci.yes","-0.718","-1.431","-0.005","0.049","-0.512","-0.761","-0.005","-0.806","-1.521","-0.092","0.027","-0.553","-0.781","-0.088","yes","tci","tci.yes","-0.718","-1.431","-0.005","0.049","-0.512","-0.761","-0.005","-0.806","-1.521","-0.092","0.027","-0.553","-0.781","-0.088"
|
||||
"26","no","pad","pad.yes","0.339","-0.439","1.118","0.391","0.404","-0.355","2.058","0.293","-0.575","1.161","0.507","0.340","-0.437","2.194","yes","pad","pad.yes","0.339","-0.439","1.118","0.391","0.404","-0.355","2.058","0.293","-0.575","1.161","0.507","0.340","-0.437","2.194"
|
||||
"27","no","nihss_0","nihss_0","0.028","-0.136","0.193","0.734","0.028","-0.136","0.193","-0.056","-0.239","0.126","0.544","-0.056","-0.239","0.126","yes","nihss_0","nihss_0","0.028","-0.136","0.193","0.734","0.028","-0.136","0.193","-0.056","-0.239","0.126","0.544","-0.056","-0.239","0.126"
|
||||
"28","no","any_reperf","any_reperf.yes","0.037","-0.211","0.285","0.768","0.038","-0.190","0.330","0.183","-0.097","0.462","0.199","0.201","-0.092","0.588","yes","any_reperf","any_reperf.yes","0.037","-0.211","0.285","0.768","0.038","-0.190","0.330","0.183","-0.097","0.462","0.199","0.201","-0.092","0.588"
|
|
@ -1,29 +0,0 @@
|
||||
"","name","pred","biv_co","biv_lo","biv_hi","biv_pv","biv_co.p","biv_lo.p","biv_hi.p","mul_co","mul_lo","mul_hi","mul_pv","mul_co.p","mul_lo.p","mul_hi.p","names(strat_list)[2]","name.1","pred.1","biv_co.1","biv_lo.1","biv_hi.1","biv_pv.1","biv_co.p.1","biv_lo.p.1","biv_hi.p.1","mul_co.1","mul_lo.1","mul_hi.1","mul_pv.1","mul_co.p.1","mul_lo.p.1","mul_hi.p.1"
|
||||
"1","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month"
|
||||
"2","afli","afli.yes","-0.061","-0.337","0.216","0.665","-0.059","-0.286","0.241","-0.126","-0.418","0.167","0.397","-0.118","-0.342","0.181","yes","afli","afli.yes","-0.061","-0.337","0.216","0.665","-0.059","-0.286","0.241","-0.126","-0.418","0.167","0.397","-0.118","-0.342","0.181"
|
||||
"3","age","age","0.001","-0.007","0.009","0.847","0.001","-0.007","0.009","-0.001","-0.01","0.008","0.768","-0.001","-0.01","0.008","yes","age","age","0.001","-0.007","0.009","0.847","0.001","-0.007","0.009","-0.001","-0.01","0.008","0.768","-0.001","-0.01","0.008"
|
||||
"4","ami","ami.yes","0.23","-0.116","0.575","0.192","0.258","-0.11","0.778","0.348","-0.044","0.741","0.082","0.416","-0.043","1.097","yes","ami","ami.yes","0.23","-0.116","0.575","0.192","0.258","-0.11","0.778","0.348","-0.044","0.741","0.082","0.416","-0.043","1.097"
|
||||
"5","any_reperf","any_reperf.yes","-0.087","-0.289","0.114","0.396","-0.083","-0.251","0.121","-0.194","-0.417","0.029","0.089","-0.176","-0.341","0.03","yes","any_reperf","any_reperf.yes","-0.087","-0.289","0.114","0.396","-0.083","-0.251","0.121","-0.194","-0.417","0.029","0.089","-0.176","-0.341","0.03"
|
||||
"6","cohab","cohab.yes","-0.028","-0.235","0.18","0.792","-0.027","-0.21","0.197","0.039","-0.188","0.266","0.736","0.04","-0.171","0.304","yes","cohab","cohab.yes","-0.028","-0.235","0.18","0.792","-0.027","-0.21","0.197","0.039","-0.188","0.266","0.736","0.04","-0.171","0.304"
|
||||
"7","diabetes","diabetes.yes","0.125","-0.162","0.412","0.392","0.133","-0.149","0.509","0.176","-0.13","0.482","0.259","0.192","-0.122","0.619","yes","diabetes","diabetes.yes","0.125","-0.162","0.412","0.392","0.133","-0.149","0.509","0.176","-0.13","0.482","0.259","0.192","-0.122","0.619"
|
||||
"8","ever_smoker","ever_smoker.yes","-0.115","-0.333","0.103","0.301","-0.109","-0.283","0.109","-0.114","-0.341","0.113","0.323","-0.108","-0.289","0.119","yes","ever_smoker","ever_smoker.yes","-0.115","-0.333","0.103","0.301","-0.109","-0.283","0.109","-0.114","-0.341","0.113","0.323","-0.108","-0.289","0.119"
|
||||
"9","female","female.yes","-0.032","-0.245","0.18","0.765","-0.032","-0.217","0.198","0.025","-0.204","0.255","0.83","0.025","-0.185","0.29","yes","female","female.yes","-0.032","-0.245","0.18","0.765","-0.032","-0.217","0.198","0.025","-0.204","0.255","0.83","0.025","-0.185","0.29"
|
||||
"10","hypertension","hypertension.yes","0.064","-0.134","0.262","0.525","0.066","-0.126","0.3","-0.054","-0.272","0.164","0.625","-0.053","-0.238","0.178","yes","hypertension","hypertension.yes","0.064","-0.134","0.262","0.525","0.066","-0.126","0.3","-0.054","-0.272","0.164","0.625","-0.053","-0.238","0.178"
|
||||
"11","nihss_0","nihss_0","0.153","0.01","0.297","0.036","0.153","0.01","0.297","0.238","0.083","0.393","0.003","0.238","0.083","0.393","yes","nihss_0","nihss_0","0.153","0.01","0.297","0.036","0.153","0.01","0.297","0.238","0.083","0.393","0.003","0.238","0.083","0.393"
|
||||
"12","pad","pad.yes","0.321","-0.111","0.752","0.145","0.378","-0.105","1.122","0.287","-0.195","0.77","0.241","0.333","-0.177","1.159","yes","pad","pad.yes","0.321","-0.111","0.752","0.145","0.378","-0.105","1.122","0.287","-0.195","0.77","0.241","0.333","-0.177","1.159"
|
||||
"13","pase_0","pase_0","0","-0.002","0","0.226","0","-0.002","0","0","-0.002","0","0.364","0","-0.002","0","yes","pase_0","pase_0","0","-0.002","0","0.226","0","-0.002","0","0","-0.002","0","0.364","0","-0.002","0"
|
||||
"14","tci","tci.yes","-0.371","-1.065","0.324","0.295","-0.31","-0.655","0.383","-0.356","-1.044","0.332","0.309","-0.3","-0.648","0.393","yes","tci","tci.yes","-0.371","-1.065","0.324","0.295","-0.31","-0.655","0.383","-0.356","-1.044","0.332","0.309","-0.3","-0.648","0.393"
|
||||
"15","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month"
|
||||
"16","afli","afli.yes","-0.079","-0.404","0.245","0.631","-0.076","-0.332","0.278","-0.076","-0.411","0.259","0.655","-0.073","-0.337","0.296","yes","afli","afli.yes","-0.079","-0.404","0.245","0.631","-0.076","-0.332","0.278","-0.076","-0.411","0.259","0.655","-0.073","-0.337","0.296"
|
||||
"17","age","age","0","-0.009","0.009","0.977","0","-0.009","0.009","-0.008","-0.019","0.003","0.134","-0.008","-0.019","0.003","yes","age","age","0","-0.009","0.009","0.977","0","-0.009","0.009","-0.008","-0.019","0.003","0.134","-0.008","-0.019","0.003"
|
||||
"18","ami","ami.yes","0.203","-0.254","0.661","0.382","0.225","-0.225","0.936","0.178","-0.326","0.682","0.488","0.195","-0.278","0.977","yes","ami","ami.yes","0.203","-0.254","0.661","0.382","0.225","-0.225","0.936","0.178","-0.326","0.682","0.488","0.195","-0.278","0.977"
|
||||
"19","any_reperf","any_reperf.yes","0.037","-0.211","0.285","0.768","0.038","-0.19","0.33","0.183","-0.097","0.462","0.199","0.201","-0.092","0.588","yes","any_reperf","any_reperf.yes","0.037","-0.211","0.285","0.768","0.038","-0.19","0.33","0.183","-0.097","0.462","0.199","0.201","-0.092","0.588"
|
||||
"20","cohab","cohab.yes","-0.067","-0.325","0.19","0.607","-0.065","-0.277","0.209","-0.102","-0.381","0.178","0.475","-0.097","-0.317","0.195","yes","cohab","cohab.yes","-0.067","-0.325","0.19","0.607","-0.065","-0.277","0.209","-0.102","-0.381","0.178","0.475","-0.097","-0.317","0.195"
|
||||
"21","diabetes","diabetes.yes","0.08","-0.339","0.498","0.709","0.083","-0.287","0.645","0.079","-0.343","0.5","0.713","0.082","-0.29","0.649","yes","diabetes","diabetes.yes","0.08","-0.339","0.498","0.709","0.083","-0.287","0.645","0.079","-0.343","0.5","0.713","0.082","-0.29","0.649"
|
||||
"22","ever_smoker","ever_smoker.yes","0.103","-0.145","0.351","0.413","0.109","-0.135","0.42","0.098","-0.163","0.359","0.46","0.103","-0.15","0.432","yes","ever_smoker","ever_smoker.yes","0.103","-0.145","0.351","0.413","0.109","-0.135","0.42","0.098","-0.163","0.359","0.46","0.103","-0.15","0.432"
|
||||
"23","female","female.yes","0.305","0.061","0.549","0.015","0.356","0.063","0.731","0.274","0.002","0.546","0.048","0.315","0.002","0.726","yes","female","female.yes","0.305","0.061","0.549","0.015","0.356","0.063","0.731","0.274","0.002","0.546","0.048","0.315","0.002","0.726"
|
||||
"24","hypertension","hypertension.yes","0.285","0.047","0.523","0.019","0.33","0.049","0.686","0.158","-0.103","0.419","0.235","0.171","-0.098","0.52","yes","hypertension","hypertension.yes","0.285","0.047","0.523","0.019","0.33","0.049","0.686","0.158","-0.103","0.419","0.235","0.171","-0.098","0.52"
|
||||
"25","nihss_0","nihss_0","0.028","-0.136","0.193","0.734","0.028","-0.136","0.193","-0.056","-0.239","0.126","0.544","-0.056","-0.239","0.126","yes","nihss_0","nihss_0","0.028","-0.136","0.193","0.734","0.028","-0.136","0.193","-0.056","-0.239","0.126","0.544","-0.056","-0.239","0.126"
|
||||
"26","pad","pad.yes","0.339","-0.439","1.118","0.391","0.404","-0.355","2.058","0.293","-0.575","1.161","0.507","0.34","-0.437","2.194","yes","pad","pad.yes","0.339","-0.439","1.118","0.391","0.404","-0.355","2.058","0.293","-0.575","1.161","0.507","0.34","-0.437","2.194"
|
||||
"27","pase_0","pase_0","-0.002","-0.006","0","0.007","-0.002","-0.006","0","-0.002","-0.006","0","0.059","-0.002","-0.006","0","yes","pase_0","pase_0","-0.002","-0.006","0","0.007","-0.002","-0.006","0","-0.002","-0.006","0","0.059","-0.002","-0.006","0"
|
||||
"28","tci","tci.yes","-0.718","-1.431","-0.005","0.049","-0.512","-0.761","-0.005","-0.806","-1.521","-0.092","0.027","-0.553","-0.781","-0.088","yes","tci","tci.yes","-0.718","-1.431","-0.005","0.049","-0.512","-0.761","-0.005","-0.806","-1.521","-0.092","0.027","-0.553","-0.781","-0.088"
|
|
@ -1,31 +0,0 @@
|
||||
"","name","pred","biv_co","biv_lo","biv_hi","biv_pv","biv_co.p","biv_lo.p","biv_hi.p","mul_co","mul_lo","mul_hi","mul_pv","mul_co.p","mul_lo.p","mul_hi.p"
|
||||
"1","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr","mdi_1_enr"
|
||||
"2","active_treat","active_treat.yes","0.053","-0.090","0.196","0.464","0.055","-0.086","0.217","0.105","-0.039","0.250","0.151","0.111","-0.038","0.284"
|
||||
"3","pase_0","pase_0","-0.001","-0.002","-0.000","0.006","-0.001","-0.002","-0.000","-0.000","-0.002","0.000","0.059","-0.000","-0.002","0.000"
|
||||
"4","female","female.yes","0.145","-0.005","0.295","0.058","0.156","-0.005","0.343","0.183","0.023","0.344","0.025","0.201","0.023","0.410"
|
||||
"5","age","age","-0.001","-0.007","0.004","0.688","-0.001","-0.007","0.004","-0.006","-0.012","0.000","0.060","-0.006","-0.012","0.000"
|
||||
"6","cohab","cohab.yes","0.019","-0.132","0.169","0.807","0.019","-0.123","0.184","0.040","-0.120","0.201","0.620","0.041","-0.113","0.222"
|
||||
"7","ever_smoker","ever_smoker.yes","-0.088","-0.240","0.064","0.256","-0.084","-0.214","0.066","-0.134","-0.291","0.023","0.095","-0.125","-0.252","0.023"
|
||||
"8","diabetes","diabetes.yes","0.159","-0.065","0.383","0.163","0.172","-0.063","0.466","0.217","-0.013","0.446","0.064","0.242","-0.012","0.563"
|
||||
"9","hypertension","hypertension.yes","0.138","-0.004","0.281","0.058","0.148","-0.004","0.324","0.061","-0.091","0.214","0.430","0.063","-0.087","0.238"
|
||||
"10","afli","afli.yes","-0.146","-0.342","0.050","0.143","-0.136","-0.290","0.051","-0.149","-0.351","0.052","0.146","-0.139","-0.296","0.053"
|
||||
"11","ami","ami.yes","0.147","-0.112","0.405","0.266","0.158","-0.106","0.499","0.177","-0.103","0.457","0.216","0.194","-0.098","0.580"
|
||||
"12","tci","tci.yes","0.138","-0.316","0.591","0.550","0.148","-0.271","0.807","0.078","-0.362","0.518","0.729","0.081","-0.304","0.678"
|
||||
"13","pad","pad.yes","0.139","-0.219","0.497","0.447","0.149","-0.197","0.643","0.150","-0.237","0.537","0.446","0.162","-0.211","0.711"
|
||||
"14","nihss_0","nihss_0","0.106","0.007","0.204","0.036","0.106","0.007","0.204","0.117","0.010","0.224","0.032","0.117","0.010","0.224"
|
||||
"15","any_reperf","any_reperf.yes","0.021","-0.127","0.168","0.785","0.021","-0.119","0.183","-0.013","-0.174","0.149","0.879","-0.012","-0.160","0.160"
|
||||
"16","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr","mdi_6_newobs_enr"
|
||||
"17","active_treat","active_treat.yes","-0.084","-0.249","0.081","0.316","-0.081","-0.220","0.084","-0.068","-0.237","0.100","0.426","-0.066","-0.211","0.105"
|
||||
"18","pase_0","pase_0","-0.001","-0.003","-0.000","0.002","-0.001","-0.003","-0.000","-0.001","-0.003","-0.000","0.017","-0.001","-0.003","-0.000"
|
||||
"19","female","female.yes","0.246","0.074","0.418","0.005","0.279","0.077","0.519","0.264","0.077","0.451","0.006","0.302","0.080","0.570"
|
||||
"20","age","age","0.001","-0.005","0.008","0.658","0.001","-0.005","0.008","-0.007","-0.015","0.000","0.062","-0.007","-0.015","0.000"
|
||||
"21","cohab","cohab.yes","-0.094","-0.269","0.080","0.290","-0.090","-0.236","0.084","-0.008","-0.197","0.181","0.935","-0.008","-0.179","0.199"
|
||||
"22","ever_smoker","ever_smoker.yes","-0.021","-0.197","0.155","0.817","-0.020","-0.178","0.168","-0.001","-0.183","0.182","0.994","-0.001","-0.167","0.199"
|
||||
"23","diabetes","diabetes.yes","0.012","-0.260","0.284","0.932","0.012","-0.229","0.329","-0.017","-0.299","0.265","0.905","-0.017","-0.259","0.303"
|
||||
"24","hypertension","hypertension.yes","0.232","0.068","0.396","0.006","0.261","0.070","0.487","0.100","-0.078","0.278","0.272","0.105","-0.075","0.321"
|
||||
"25","afli","afli.yes","-0.025","-0.255","0.206","0.835","-0.024","-0.225","0.229","-0.063","-0.300","0.175","0.605","-0.061","-0.259","0.191"
|
||||
"26","ami","ami.yes","0.200","-0.103","0.502","0.195","0.221","-0.098","0.652","0.303","-0.031","0.638","0.076","0.354","-0.031","0.893"
|
||||
"27","tci","tci.yes","-0.660","-1.180","-0.140","0.013","-0.483","-0.693","-0.130","-0.695","-1.210","-0.180","0.008","-0.501","-0.702","-0.165"
|
||||
"28","pad","pad.yes","0.416","0.001","0.831","0.050","0.516","0.001","1.296","0.304","-0.155","0.762","0.194","0.355","-0.143","1.143"
|
||||
"29","nihss_0","nihss_0","0.142","0.024","0.260","0.018","0.142","0.024","0.260","0.134","0.007","0.260","0.039","0.134","0.007","0.260"
|
||||
"30","any_reperf","any_reperf.yes","-0.028","-0.198","0.142","0.749","-0.027","-0.179","0.153","-0.035","-0.222","0.153","0.715","-0.034","-0.199","0.165"
|
|
@ -1,31 +0,0 @@
|
||||
"","pred","biv_co","biv_lo","biv_hi","biv_pv","biv_co.p","biv_lo.p","biv_hi.p","mul_co","mul_lo","mul_hi","mul_pv","mul_co.p","mul_lo.p","mul_hi.p"
|
||||
"1","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month","One month"
|
||||
"2","active_treat.yes","0.053","-0.09","0.196","0.464","0.055","-0.086","0.217","0.105","-0.039","0.25","0.151","0.111","-0.038","0.284"
|
||||
"3","afli.yes","-0.146","-0.342","0.05","0.143","-0.136","-0.29","0.051","-0.149","-0.351","0.052","0.146","-0.139","-0.296","0.053"
|
||||
"4","age","-0.001","-0.007","0.004","0.688","-0.001","-0.007","0.004","-0.006","-0.012","0","0.06","-0.006","-0.012","0"
|
||||
"5","ami.yes","0.147","-0.112","0.405","0.266","0.158","-0.106","0.499","0.177","-0.103","0.457","0.216","0.194","-0.098","0.58"
|
||||
"6","any_reperf.yes","0.021","-0.127","0.168","0.785","0.021","-0.119","0.183","-0.013","-0.174","0.149","0.879","-0.012","-0.16","0.16"
|
||||
"7","cohab.yes","0.019","-0.132","0.169","0.807","0.019","-0.123","0.184","0.04","-0.12","0.201","0.62","0.041","-0.113","0.222"
|
||||
"8","diabetes.yes","0.159","-0.065","0.383","0.163","0.172","-0.063","0.466","0.217","-0.013","0.446","0.064","0.242","-0.012","0.563"
|
||||
"9","ever_smoker.yes","-0.088","-0.24","0.064","0.256","-0.084","-0.214","0.066","-0.134","-0.291","0.023","0.095","-0.125","-0.252","0.023"
|
||||
"10","female.yes","0.145","-0.005","0.295","0.058","0.156","-0.005","0.343","0.183","0.023","0.344","0.025","0.201","0.023","0.41"
|
||||
"11","hypertension.yes","0.138","-0.004","0.281","0.058","0.148","-0.004","0.324","0.061","-0.091","0.214","0.43","0.063","-0.087","0.238"
|
||||
"12","nihss_0","0.106","0.007","0.204","0.036","0.106","0.007","0.204","0.117","0.01","0.224","0.032","0.117","0.01","0.224"
|
||||
"13","pad.yes","0.139","-0.219","0.497","0.447","0.149","-0.197","0.643","0.15","-0.237","0.537","0.446","0.162","-0.211","0.711"
|
||||
"14","pase_0","-0.001","-0.002","0","0.006","-0.001","-0.002","0","0","-0.002","0","0.059","0","-0.002","0"
|
||||
"15","tci.yes","0.138","-0.316","0.591","0.55","0.148","-0.271","0.807","0.078","-0.362","0.518","0.729","0.081","-0.304","0.678"
|
||||
"16","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month","Six month"
|
||||
"17","active_treat.yes","-0.084","-0.249","0.081","0.316","-0.081","-0.22","0.084","-0.068","-0.237","0.1","0.426","-0.066","-0.211","0.105"
|
||||
"18","afli.yes","-0.025","-0.255","0.206","0.835","-0.024","-0.225","0.229","-0.063","-0.3","0.175","0.605","-0.061","-0.259","0.191"
|
||||
"19","age","0.001","-0.005","0.008","0.658","0.001","-0.005","0.008","-0.007","-0.015","0","0.062","-0.007","-0.015","0"
|
||||
"20","ami.yes","0.2","-0.103","0.502","0.195","0.221","-0.098","0.652","0.303","-0.031","0.638","0.076","0.354","-0.031","0.893"
|
||||
"21","any_reperf.yes","-0.028","-0.198","0.142","0.749","-0.027","-0.179","0.153","-0.035","-0.222","0.153","0.715","-0.034","-0.199","0.165"
|
||||
"22","cohab.yes","-0.094","-0.269","0.08","0.29","-0.09","-0.236","0.084","-0.008","-0.197","0.181","0.935","-0.008","-0.179","0.199"
|
||||
"23","diabetes.yes","0.012","-0.26","0.284","0.932","0.012","-0.229","0.329","-0.017","-0.299","0.265","0.905","-0.017","-0.259","0.303"
|
||||
"24","ever_smoker.yes","-0.021","-0.197","0.155","0.817","-0.02","-0.178","0.168","-0.001","-0.183","0.182","0.994","-0.001","-0.167","0.199"
|
||||
"25","female.yes","0.246","0.074","0.418","0.005","0.279","0.077","0.519","0.264","0.077","0.451","0.006","0.302","0.08","0.57"
|
||||
"26","hypertension.yes","0.232","0.068","0.396","0.006","0.261","0.07","0.487","0.1","-0.078","0.278","0.272","0.105","-0.075","0.321"
|
||||
"27","nihss_0","0.142","0.024","0.26","0.018","0.142","0.024","0.26","0.134","0.007","0.26","0.039","0.134","0.007","0.26"
|
||||
"28","pad.yes","0.416","0.001","0.831","0.05","0.516","0.001","1.296","0.304","-0.155","0.762","0.194","0.355","-0.143","1.143"
|
||||
"29","pase_0","-0.001","-0.003","0","0.002","-0.001","-0.003","0","-0.001","-0.003","0","0.017","-0.001","-0.003","0"
|
||||
"30","tci.yes","-0.66","-1.18","-0.14","0.013","-0.483","-0.693","-0.13","-0.695","-1.21","-0.18","0.008","-0.501","-0.702","-0.165"
|
|
@ -1,34 +0,0 @@
|
||||
## =============================================================================
|
||||
##
|
||||
## Data modification and enriching
|
||||
##
|
||||
## =============================================================================
|
||||
|
||||
|
||||
## =============================================================================
|
||||
## Requirements
|
||||
## =============================================================================
|
||||
|
||||
# library(gtsummary)
|
||||
library(REDCapR)
|
||||
|
||||
## =============================================================================
|
||||
## Import
|
||||
## =============================================================================
|
||||
|
||||
token_talos<-read.csv("/Users/au301842/talos_redcap_token.csv",colClasses = "character")|>
|
||||
names()|>
|
||||
(\(x){ ## Shorthand for "anonymous lambda function"
|
||||
substr(x,2,33)})()|>
|
||||
suppressWarnings()
|
||||
|
||||
dta <- redcap_read_oneshot(
|
||||
redcap_uri = "https://redcap.au.dk/api/",
|
||||
token = token_talos
|
||||
)$data|>
|
||||
select(-c("cpr"))
|
||||
|
||||
## =============================================================================
|
||||
## MDI scores
|
||||
## =============================================================================
|
||||
|
112
data_format.R
112
data_format.R
@ -1,112 +0,0 @@
|
||||
|
||||
library(REDCapR)
|
||||
library(gtsummary)
|
||||
theme_gtsummary_compact()
|
||||
library(REDCapR)
|
||||
library(gt)
|
||||
|
||||
library(lubridate)
|
||||
library(dplyr)
|
||||
library(tidyr)
|
||||
|
||||
|
||||
dta_all<-read.csv("/Volumes/Data/depression/dep_dataset.csv")
|
||||
|
||||
|
||||
# Defining patients to include for analysis
|
||||
# Only including cases with complete pase_0 and MDI at 1 & 6 months
|
||||
|
||||
dta<-dta_all[!is.na(dta_all$pase_0),]
|
||||
# &!is.na(dta$mdi_1)&!is.na(dta$mdi_6)
|
||||
|
||||
|
||||
## Formatting
|
||||
dta$diabetes<-factor(dta$diabetes)
|
||||
dta$pad<-factor(dta$pad)
|
||||
|
||||
dta$cohab<-ifelse(dta$civil=="partner","yes","no")|>
|
||||
factor()
|
||||
|
||||
dta$hypertension<-factor(dta$hypertension)
|
||||
|
||||
dta$afli[dta$afli=="unknown"]<-NA
|
||||
dta$afli<-factor(dta$afli)
|
||||
|
||||
dta$ever_smoker<-ifelse(dta$smoke_ever=="ever","yes","no")|>
|
||||
factor()
|
||||
|
||||
dta$ami<-factor(dta$ami)
|
||||
dta$tci<-factor(dta$tci)
|
||||
dta$thrombolysis<-factor(dta$thrombolysis)
|
||||
dta$thrombechtomy<-factor(dta$thrombechtomy)
|
||||
|
||||
dta$any_reperf<-ifelse(dta$rep_any=="rep","yes","no")|>
|
||||
factor()
|
||||
|
||||
dta$pad<-factor(dta$pad)
|
||||
dta$nihss_0<-as.numeric(dta$nihss_0)
|
||||
dta$age<-as.numeric(dta$age)
|
||||
|
||||
dta$active_treat<-ifelse(dta$rtreat=="Active","yes","no")|>
|
||||
factor()
|
||||
# dta$rtreat<-factor(dta$rtreat)
|
||||
|
||||
dta$female<-ifelse(dta$sex=="female","yes","no")|>
|
||||
factor()
|
||||
|
||||
dta$pase_0<-as.numeric(dta$pase_0)
|
||||
dta$pase_6<-as.numeric(dta$pase_6)
|
||||
dta$bmi<-as.numeric(dta$bmi)
|
||||
dta$mdi_6<-as.numeric(dta$mdi_6)
|
||||
dta$pase_0_bin<-factor(dta$pase_0_bin,levels=c("lower","higher"))
|
||||
|
||||
dta$nihss_0_isna<-is.na(dta$nihss_0)
|
||||
|
||||
|
||||
|
||||
vars<-c("pase_0",
|
||||
"female",
|
||||
"age",
|
||||
"cohab",
|
||||
"ever_smoker",
|
||||
"diabetes",
|
||||
"hypertension",
|
||||
"afli",
|
||||
"ami",
|
||||
"tci",
|
||||
"pad",
|
||||
"nihss_0",
|
||||
"any_reperf")
|
||||
|
||||
# tbl1_vars<-c("thrombolysis", "thrombechtomy","inc_time")
|
||||
|
||||
labels_all<-list(active_treat~"Active trial treatment",
|
||||
pase_0~"PASE score",
|
||||
age~"Age",
|
||||
female~"Female sex",
|
||||
ever_smoker~"History of smoking",
|
||||
cohab~"Cohabitation",
|
||||
diabetes~"Known diabetes",
|
||||
hypertension~"Known hypertension",
|
||||
afli~"Known Atrialfibrillation",
|
||||
ami~"Previos myocardial infarction",
|
||||
tci~"Previos TIA",
|
||||
pad~"Known peripheral artery disease",
|
||||
nihss_0~"NIHSS score",
|
||||
thrombolysis~"Thrombolytic therapy",
|
||||
thrombechtomy~"Endovascular treatment",
|
||||
any_reperf~"Any reperfusion treatment",
|
||||
inc_time~"Study inclusion time",
|
||||
'[Intercept]'~"Intercept")
|
||||
|
||||
lab_sel<-function(label_list,variables_vector){
|
||||
## Helper function to select labels for gtsummary function from list of all labels based on selected variables.
|
||||
## Long names in try to ease reading.
|
||||
include_index<-c()
|
||||
for (i in 1:length(label_list)) {
|
||||
include_index[i]<-as.character(label_list[[i]])[2] %in% variables_vector
|
||||
}
|
||||
return(label_list[include_index])
|
||||
}
|
||||
|
||||
dta_backup<-dta
|
BIN
dep_data.pdf
Normal file
BIN
dep_data.pdf
Normal file
Binary file not shown.
BIN
dep_flow.pdf
Normal file
BIN
dep_flow.pdf
Normal file
Binary file not shown.
BIN
dep_imputation.pdf
Normal file
BIN
dep_imputation.pdf
Normal file
Binary file not shown.
BIN
dep_median.pdf
Normal file
BIN
dep_median.pdf
Normal file
Binary file not shown.
BIN
dep_regression.pdf
Normal file
BIN
dep_regression.pdf
Normal file
Binary file not shown.
BIN
dep_tableone.pdf
Normal file
BIN
dep_tableone.pdf
Normal file
Binary file not shown.
BIN
dep_tableone_enriched.pdf
Normal file
BIN
dep_tableone_enriched.pdf
Normal file
Binary file not shown.
@ -1,138 +0,0 @@
|
||||
back_trans <- function(gtt,outm=NULL,sqrts=NULL,logs=NULL,log1ps=NULL){
|
||||
## Handles back-transformation for non-strat and strat
|
||||
##
|
||||
## gtt = gt table element
|
||||
## outm = outcome meassure trans. One of c("log","log1p","sqrt"). The reciprocal function is used to back transform.
|
||||
## sqrts = sqrt-trasformed variable names
|
||||
## logs= log-trasformed variable names
|
||||
## log1ps= log1p-trasformed variable names
|
||||
|
||||
# gtt<-mul
|
||||
# outm<-"log1p"
|
||||
# sqrts <- "pase_0"
|
||||
# logs <- "nihss_0"
|
||||
|
||||
ests<-colnames(dplyr::select(gtt$table_body,contains("estimate")))
|
||||
lows<-colnames(dplyr::select(gtt$table_body,contains("conf.low")))
|
||||
highs<-colnames(dplyr::select(gtt$table_body,contains("conf.high")))
|
||||
|
||||
sqrt_ci <- function(gtt,all.v=FALSE,var=NULL){
|
||||
# Sqrt-transformation function to account for negative coefficients.
|
||||
if (all.v){
|
||||
var<-gtt$table_body$variable
|
||||
}
|
||||
|
||||
# There is a
|
||||
|
||||
for (i in var){
|
||||
for (j in ests){
|
||||
est<-gtt$table_body[gtt$table_body$variable==i,][j]
|
||||
|
||||
if (0 > est){
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<- (0-(est^2))
|
||||
} else {
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<- (est^2)
|
||||
}
|
||||
}
|
||||
|
||||
for (j in lows){
|
||||
low<-gtt$table_body[gtt$table_body$variable==i,][j]
|
||||
|
||||
if (0 > low){
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<- (0-(low^2))
|
||||
} else {
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<- (low^2)
|
||||
}
|
||||
}
|
||||
|
||||
for (j in highs){
|
||||
high<-gtt$table_body[gtt$table_body$variable==i,][j]
|
||||
|
||||
if (0 > high){
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<- (0-(high^2))
|
||||
} else {
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<- (high^2)
|
||||
}
|
||||
}
|
||||
}
|
||||
return(gtt)
|
||||
}
|
||||
|
||||
log_ci <- function(gtt,all.v=FALSE,var=NULL){
|
||||
# Log-transformation function
|
||||
if (all.v){
|
||||
var<-gtt$table_body$variable
|
||||
}
|
||||
|
||||
for (i in var){
|
||||
for (j in ests){
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<-
|
||||
exp(gtt$table_body[gtt$table_body$variable==i,][j])
|
||||
}
|
||||
|
||||
for (j in lows){
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<-
|
||||
exp(gtt$table_body[gtt$table_body$variable==i,][j])
|
||||
|
||||
}
|
||||
|
||||
for (j in highs){
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<-
|
||||
exp(gtt$table_body[gtt$table_body$variable==i,][j])
|
||||
}
|
||||
}
|
||||
return(gtt)
|
||||
}
|
||||
|
||||
log1p_ci <- function(gtt,all.v=FALSE,var=NULL){
|
||||
# Log1p-transformation function
|
||||
if (all.v){
|
||||
var<-gtt$table_body$variable
|
||||
}
|
||||
|
||||
for (i in var){
|
||||
for (j in ests){
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<-
|
||||
expm1(gtt$table_body[gtt$table_body$variable==i,][j])
|
||||
}
|
||||
|
||||
for (j in lows){
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<-
|
||||
expm1(gtt$table_body[gtt$table_body$variable==i,][j])
|
||||
|
||||
}
|
||||
|
||||
for (j in highs){
|
||||
gtt$table_body[gtt$table_body$variable==i,][j]<-
|
||||
expm1(gtt$table_body[gtt$table_body$variable==i,][j])
|
||||
}
|
||||
}
|
||||
return(gtt)
|
||||
}
|
||||
|
||||
if (outm=="log1p"){
|
||||
## Transforming log1p() to expm1()
|
||||
gtt<-log1p_ci(gtt,all.v=TRUE)
|
||||
}
|
||||
|
||||
if (outm=="log"){
|
||||
## Transforming log1p() to expm1()
|
||||
gtt<-log_ci(gtt,all.v=TRUE)
|
||||
}
|
||||
|
||||
if (outm=="sqrt"){
|
||||
gtt<-sqrt_ci(gtt,all.v=TRUE)
|
||||
}
|
||||
|
||||
# Sqrts
|
||||
gtt<-sqrt_ci(gtt,var=sqrts)
|
||||
|
||||
# Log1ps
|
||||
gtt<-log1p_ci(gtt, var=log1ps)
|
||||
|
||||
# Logs
|
||||
gtt<-log_ci(gtt, var=logs)
|
||||
|
||||
|
||||
return(gtt)
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
reg_fun <- function(outs=c("mdi_1_enr","mdi_6_newobs_enr"),
|
||||
lbl_x=NULL,
|
||||
strat_var=NULL,
|
||||
trans_vars=TRUE,
|
||||
sqrt_vars="pase_0",
|
||||
log1p_vars="nihss_0",
|
||||
log_vars=NULL,
|
||||
trans_back=TRUE,
|
||||
print_tbl=TRUE){
|
||||
|
||||
##
|
||||
## THIS IS NOT WORKING. WISH IT WOULD!
|
||||
##
|
||||
|
||||
# outs Outcoume variables
|
||||
# lbl_x # Extra label in file name,
|
||||
# strat_var # Variable to stratify by. Only one variable(!),
|
||||
# trans_vars # Transform variables? T/F,
|
||||
# sqrt_vars" # Variables to sqrt-transfom,
|
||||
# log1p_vars" # Variables to log1p-transform, not outcome,
|
||||
# log_vars # Variables to log-transform,
|
||||
# log1p_vars_all # All variables to log1p-transform, incl outcome,
|
||||
# trans_back # Back transform variables? T/F,
|
||||
# print_tbl # Print tables? T/F){
|
||||
|
||||
log1p_vars_all <- c(log1p_vars,outs)
|
||||
source("data_format.R")
|
||||
source("biv_mul.R")
|
||||
}
|
@ -1,87 +0,0 @@
|
||||
reg_table <- function(X,y,m.biv=TRUE,m.mul=TRUE,trans.out=FALSE,trans.var=FALSE,outm=NULL,sqrt.vars=NULL,log1p.vars=NULL,inter.add=NULL){
|
||||
# method One of biv, mul, biv_mul
|
||||
|
||||
source("function_trans_table.R")
|
||||
|
||||
cols<-c("name","pred", "co", "lo", "hi", "pv")
|
||||
|
||||
if(!is.null(inter.add)){
|
||||
form_add<-paste0(paste0(inter.add,collapse = "*"),"+")
|
||||
m.biv <- FALSE # If interaction term is added, only multivariate is performed.
|
||||
} else {
|
||||
form_add=NULL
|
||||
}
|
||||
|
||||
if (m.biv){
|
||||
df_b <- data.frame(matrix(NA, ncol = length(cols)))
|
||||
names(df_b)<-cols
|
||||
|
||||
|
||||
for (j in colnames(X)){
|
||||
m<-lm(formula(paste0("y~",j)),X)
|
||||
|
||||
ci <- confint(m)
|
||||
lo <- ci[-1, 1]
|
||||
hi <- ci[-1, 2]
|
||||
co <- coef(m)[-1]
|
||||
#pv <- broom::tidy(m)$p.value[-1]
|
||||
pv <- summary(m)$coefficients[2,4] # Avoids dependency
|
||||
x1 <- X[, j]
|
||||
if (is.factor(x1)) {
|
||||
pred <- paste(j, levels(x1)[-1],
|
||||
sep = ".")
|
||||
} else { pred <- j }
|
||||
|
||||
df_b <- rbind(df_b, cbind(name=j, pred, co, lo, hi, pv))
|
||||
|
||||
}
|
||||
|
||||
df_b <- df_b[-1,]
|
||||
if (trans.var){
|
||||
df_b <- trans_table(df_b,sqrts=sqrt.vars,f.vars=f.names)
|
||||
}
|
||||
|
||||
df_b<-df_b|>data.frame()|>mutate(across(matches('co|lo|hi'),as.numeric))
|
||||
}
|
||||
|
||||
if (m.mul){
|
||||
m<-lm(formula(paste0("y~",form_add,".")),X)
|
||||
|
||||
ci <- confint(m)
|
||||
lo <- ci[-1, 1]
|
||||
hi <- ci[-1, 2]
|
||||
co <- coef(m)[-1]
|
||||
#pv <- broom::tidy(m)$p.value[-1]
|
||||
pv <- summary(m)$coefficients[-1,4] # Avoids dependency
|
||||
pred <- c()
|
||||
for (j in colnames(X)){
|
||||
x1 <- X[, j]
|
||||
if (is.factor(x1)) {
|
||||
pred <- c(pred,
|
||||
paste(j, levels(x1)[-1],
|
||||
sep = "."))
|
||||
} else { pred <- c(pred,
|
||||
j) }
|
||||
}
|
||||
df_m <- cbind(name=c(colnames(X),form_add), pred=c(pred,form_add), co, lo, hi, pv)
|
||||
|
||||
if (trans.var){
|
||||
df_m <- trans_table(df_m,sqrts=sqrt.vars,f.vars=f.names)
|
||||
}
|
||||
|
||||
df_m<-df_m|>data.frame()|>mutate(across(matches('co|lo|hi'),as.numeric))
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (all(m.biv,m.mul)){
|
||||
colnames(df_b)[3:ncol(df_b)]<-paste0("biv_",colnames(df_b)[3:ncol(df_b)])
|
||||
colnames(df_m)[3:ncol(df_m)]<-paste0("mul_",colnames(df_m)[3:ncol(df_m)])
|
||||
|
||||
return(merge(df_b,df_m,by=c("name","pred"),sort=FALSE))
|
||||
} else if (m.biv) {
|
||||
return(df_b)
|
||||
} else {return(df_m)}
|
||||
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
trans_cols<-function(ds,sqrts=NULL,logs=NULL,log1ps=NULL){
|
||||
## gtt = gt table element
|
||||
## sqrts = sqrt-trasformed variable names
|
||||
## logs= log-trasformed variable names
|
||||
## log1ps= log1p-trasformed variable names
|
||||
|
||||
# gtt<-mul
|
||||
# outm<-"log1p"
|
||||
# sqrts <- "pase_0"
|
||||
# logs <- "nihss_0"
|
||||
|
||||
for (i in sqrts){
|
||||
ds[i]<-sqrt(ds[i])
|
||||
}
|
||||
|
||||
for (i in logs){
|
||||
ds[i]<-log(ds[i])
|
||||
}
|
||||
|
||||
for (i in log1ps){
|
||||
ds[i]<-log1p(ds[i])
|
||||
}
|
||||
|
||||
return(ds)
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
trans_table <- function(ds,f.vars,sqrts=NULL,logs=NULL){
|
||||
## Handles back-transformation for table with co, lo and hi
|
||||
##
|
||||
## ds = matrix or table including colnames co, lo and hi
|
||||
## sqrts sqrt-trasformed variables names
|
||||
## logs log-trasformed independent variables names
|
||||
## f.vars dichotomous variables
|
||||
# f.vars <- f.names
|
||||
# ds<-df_m
|
||||
# sqrts <- "pase_0"
|
||||
# logs <- "nihss_0"
|
||||
|
||||
ds<-ds|>data.frame()|>mutate(across(c("co", "lo", "hi"),as.numeric))
|
||||
|
||||
for (i in sqrts){
|
||||
est<-ds$co[ds$name==i]
|
||||
if (0 > est){
|
||||
ds$co[ds$name==i]<- (0-(est^2))
|
||||
} else {
|
||||
ds$co[ds$name==i]<- (est^2)
|
||||
}
|
||||
|
||||
low<-ds$lo[ds$name==i]
|
||||
if (0 > low){
|
||||
ds$lo[ds$name==i]<- (0-(low^2))
|
||||
} else {
|
||||
ds$lo[ds$name==i]<- (low^2)
|
||||
}
|
||||
|
||||
high<-ds$hi[ds$name==i]
|
||||
if (0 > high){
|
||||
ds$hi[ds$name==i]<- (0-(high^2))
|
||||
} else {
|
||||
ds$hi[ds$name==i]<- (high^2)
|
||||
}
|
||||
}
|
||||
|
||||
cols<-c("name","co.p", "lo.p", "hi.p")
|
||||
|
||||
ds_r <- data.frame(matrix(ncol = length(cols)))
|
||||
names(ds_r)<-cols
|
||||
|
||||
for (j in 1:nrow(ds)){
|
||||
if (ds$name[j]%in%f.vars){
|
||||
ds_r<-rbind(ds_r,c(name=ds$name[j],sapply(ds[j,3:5],expm1)))
|
||||
} else {
|
||||
ds_rn <- c(ds$name[j],ds[j,3:5])
|
||||
names(ds_rn) <- cols
|
||||
ds_r<-rbind(ds_r,ds_rn)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return(merge(ds,ds_r,by="name",sort = FALSE))
|
||||
}
|
@ -1,97 +0,0 @@
|
||||
## =============================================================================
|
||||
## Requirements
|
||||
## =============================================================================
|
||||
|
||||
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)
|
||||
library(gtsummary)
|
||||
|
||||
source("function_back_trans.R")
|
||||
|
||||
## =============================================================================
|
||||
## Loop
|
||||
## =============================================================================
|
||||
|
||||
bm_list<-list()
|
||||
|
||||
for (i in 1:length(outs)){
|
||||
|
||||
dta_l<-dta|>
|
||||
dplyr::select(all_of(c("active_treat",vars,outs[i]))) # active_treat should be vector
|
||||
|
||||
sel<-dta_l|>
|
||||
sapply(is.factor)
|
||||
|
||||
## Multivariate
|
||||
mul<-dta_l |>
|
||||
lm(formula(
|
||||
paste(c(paste(c(outs[i],paste(c("active_treat","pase_0"),collapse="*")),collapse="~"),"."),collapse="+")),
|
||||
data = _)|>
|
||||
tbl_regression(label = lab_sel(labels_all,c(vars,"active_treat")),
|
||||
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()
|
||||
|
||||
|
||||
mul <- back_trans(mul, outm = "log1p" ,sqrts = "pase_0",log1ps = "nihss_0")
|
||||
|
||||
|
||||
bm_list[[i]]<-mul
|
||||
}
|
||||
|
||||
## =============================================================================
|
||||
## Big merge
|
||||
## =============================================================================
|
||||
|
||||
bm_16_tbl <- tbl_merge(
|
||||
tbls = bm_list,
|
||||
tab_spanner = c("**One month follow up**",
|
||||
"**Six months follow up**")
|
||||
)
|
||||
|
||||
|
||||
|
||||
library(aod)
|
||||
|
||||
for (i in 1:length(outs)){
|
||||
model<-dta |>
|
||||
dplyr::select(all_of(c("active_treat",vars,outs[i])))|>
|
||||
lm(formula(
|
||||
paste(c(paste(c(outs[i],paste(c("active_treat","pase_0"),collapse="*")),collapse="~"),"."),collapse="+")),
|
||||
data = _)
|
||||
|
||||
wt<-wald.test(Sigma = vcov(model),
|
||||
b = coef(model),
|
||||
Terms = model$rank # Rank gives number of coefficients. The interaction is the last.
|
||||
)
|
||||
print(wt)
|
||||
}
|
||||
|
||||
## =============================================================================
|
||||
## Print
|
||||
## =============================================================================
|
||||
|
||||
# File name depending onstratification, transformation and back transformation
|
||||
if (print_tbl==TRUE){
|
||||
fnm<-paste0("bm_16_tbl",lbl_x)
|
||||
if (!is.null(strat_var)){fnm<-paste0(fnm,"_strat")}
|
||||
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)
|
||||
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
## =============================================================================
|
||||
## Requirements
|
||||
## =============================================================================
|
||||
|
||||
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)
|
||||
library(gtsummary)
|
||||
|
||||
source("function_back_trans.R")
|
||||
|
||||
## =============================================================================
|
||||
## Regression tables
|
||||
## =============================================================================
|
||||
|
||||
dta_l<-dta|>
|
||||
dplyr::select(all_of(c(vars,outs))) # active_treat should be vector
|
||||
|
||||
sel<-dta_l|>
|
||||
sapply(is.factor)
|
||||
|
||||
## Bivariate
|
||||
biv<-dta_l|>
|
||||
tbl_uvregression(data=_,
|
||||
y=outs,
|
||||
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()
|
||||
|
||||
## Multivariate
|
||||
mul<-dta_l |>
|
||||
lm(nihss_0~pase_0+.,
|
||||
data = _) |>
|
||||
tbl_regression(show_single_row=colnames(dta_l)[sel],
|
||||
estimate_fun = ~style_sigfig(.x,digits = 3),
|
||||
pvalue_fun = ~style_pvalue(.x, digits = 3),
|
||||
label = lab_sel(labels_all,vars)
|
||||
)|>
|
||||
add_n() |>
|
||||
add_global_p() |>
|
||||
bold_p() |>
|
||||
bold_labels() |>
|
||||
italicize_levels()
|
||||
|
||||
# Back transforming if flag set
|
||||
if (trans_back==TRUE){
|
||||
ls<-lapply(list(biv,mul), back_trans, outm = "log1p" ,sqrts = sqrt_vars)
|
||||
} else {ls<-list(biv,mul)}
|
||||
|
||||
|
||||
## =============================================================================
|
||||
## Merge
|
||||
## =============================================================================
|
||||
|
||||
if (trans_back==TRUE){tab_span<-c("**Bivariate linear regression [TRANS t/r]**",
|
||||
"**Multivariate linear regression [TRANS t/r]**")
|
||||
} else {tab_span<-c("**Bivariate linear regression**",
|
||||
"**Multivariate linear regression**")}
|
||||
|
||||
bm_16_tbl<-tbl_merge(
|
||||
tbls = ls,
|
||||
tab_spanner = tab_span
|
||||
)
|
||||
|
||||
## =============================================================================
|
||||
## Print
|
||||
## =============================================================================
|
||||
|
||||
# File name depending onstratification, transformation and back transformation
|
||||
if (print_tbl==TRUE){
|
||||
fnm<-paste0("bm_16_tbl",lbl_x)
|
||||
if (!is.null(strat_var)){fnm<-paste0(fnm,"_strat")}
|
||||
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)
|
||||
|
||||
}
|
15
table_1.R
15
table_1.R
@ -1,15 +0,0 @@
|
||||
tbl1_vars<-c("active_treat",vars,"inc_time")
|
||||
|
||||
tbl_1<-dta|>
|
||||
tbl_summary(missing = "ifany",
|
||||
include = all_of(tbl1_vars),
|
||||
missing_text="(Missing)",
|
||||
label = lab_sel(labels_all,tbl1_vars)
|
||||
)|>
|
||||
add_n()|>
|
||||
as_gt() |>
|
||||
# modify with gt functions
|
||||
gt::tab_header("Baseline Characteristics") |>
|
||||
gt::tab_options(
|
||||
table.font.size = "small",
|
||||
data_row.padding = gt::px(1))
|
Loading…
Reference in New Issue
Block a user