Importing data in to Rstudio below

Importin csv getwd()

#  Important packages to load in
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
## ── Attaching packages ────────────────────────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.3     ✓ purrr   0.3.4
## ✓ tibble  3.0.3     ✓ stringr 1.4.0
## ✓ tidyr   1.1.1     ✓ forcats 0.5.0
## ✓ readr   1.3.1
## ── Conflicts ───────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(broom)
library(ggplot2)
library(survminer)
## Loading required package: ggpubr
library(VIM)
## Loading required package: colorspace
## Loading required package: grid
## VIM is ready to use.
## Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
## 
## Attaching package: 'VIM'
## The following object is masked from 'package:datasets':
## 
##     sleep
library(fastmap)
PreopNeoPaper <- read.csv ("Majid.csv", header = TRUE, sep = "," )
#### Subsetting cleaned data from one dataframe to a new dataframe
PreopNeoPaperDemotable <- 
  PreopNeoPaper %>%
  select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N,  ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
PreopXRTOddsratio <- 
  PreopNeoPaper %>%
  select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N,  ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
### Preopneopaperdemotable changing columns singlevsmultiagent from numbers back to characters
PreopNeoPaperDemotable$Single.vs.Multi.Agent[PreopNeoPaperDemotable$Single.vs.Multi.Agent == 1 ] <- "Preop XRT"
PreopNeoPaperDemotable$Single.vs.Multi.Agent[PreopNeoPaperDemotable$Single.vs.Multi.Agent ==0] <- "Neo Multiagent Chemo"
PreopNeoPaperDemotable$Single.vs.Multi.Agent <- as.character(PreopNeoPaperDemotable$Single.vs.Multi.Agent)
#Final Step to create demographic table
PreopNeoPaperDemotable %>%
  tbl_summary(
    by = Single.vs.Multi.Agent,
    digits = all_continuous() ~ 2,) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
  bold_p() %>%
  add_overall() %>%
  modify_header(label ~ "**Variables**") %>%
  modify_spanning_header(c("stat_0", "stat_1") ~ "**Neo Multiagent vs Preop XRT**") %>%
  bold_labels() 
## There was an error in 'add_p()' for variable 'MED_INC_QUAR_12', p-value omitted:
## Error in stats::fisher.test(data[[variable]], as.factor(data[[by]])): FEXACT error 6.  LDKEY=573 is too small for this problem,
##   (ii := key2[itp=464] = 7072428, ldstp=17190)
## Try increasing the size of the workspace and possibly 'mult'
## There was an error in 'add_p()' for variable 'NO_HSD_QUAR_12', p-value omitted:
## Error in stats::fisher.test(data[[variable]], as.factor(data[[by]])): FEXACT error 6.  LDKEY=573 is too small for this problem,
##   (ii := key2[itp=357] = 7254535, ldstp=17190)
## Try increasing the size of the workspace and possibly 'mult'
## There was an error in 'add_p()' for variable 'TNM_CLIN_T', p-value omitted:
## Error in stats::fisher.test(data[[variable]], as.factor(data[[by]])): FEXACT error 7(location). LDSTP=17190 is too small for this problem,
##   (pastp=416.845, ipn_0:=ipoin[itp=276]=10232, stp[ipn_0]=414.452).
## Increase workspace or consider using 'simulate.p.value=TRUE'
## There was an error in 'add_p()' for variable 'TNM_PATH_T', p-value omitted:
## Error in stats::fisher.test(data[[variable]], as.factor(data[[by]])): FEXACT error 7(location). LDSTP=17190 is too small for this problem,
##   (pastp=233.544, ipn_0:=ipoin[itp=526]=5400, stp[ipn_0]=178.686).
## Increase workspace or consider using 'simulate.p.value=TRUE'
Variables Neo Multiagent vs Preop XRT PreOp Multiagent, N = 6,2971 p-value2
Overall, N = 7,8521 Pre Op XRT, N = 1,5551
AGE 64.00 (57.00, 70.00) 65.00 (58.00, 72.00) 64.00 (57.00, 70.00) <0.001
SEX 0.71
Female 3,832 (49%) 766 (49%) 3,066 (49%)
Male 4,020 (51%) 789 (51%) 3,231 (51%)
RACE.2 <0.001
Black 687 (8.7%) 186 (12%) 501 (8.0%)
Other 292 (3.7%) 38 (2.4%) 254 (4.0%)
White 6,873 (88%) 1,331 (86%) 5,542 (88%)
INSURANCE_STATUS.2 <0.001
Medicaid 359 (4.6%) 75 (4.8%) 284 (4.5%)
Medicare 3,517 (45%) 731 (47%) 2,786 (44%)
Not Insured 121 (1.5%) 36 (2.3%) 85 (1.3%)
Private Insurance/Managed Care/Goverment 3,746 (48%) 680 (44%) 3,066 (49%)
Unknown 109 (1.4%) 33 (2.1%) 76 (1.2%)
MED_INC_QUAR_12
24 (0.3%) 4 (0.3%) 20 (0.3%)
< $38,000 1,076 (14%) 270 (17%) 806 (13%)
>=$63,000 2,736 (35%) 473 (30%) 2,263 (36%)
$38,000-$47,999 1,799 (23%) 379 (24%) 1,420 (23%)
$48,000-$62,999 2,217 (28%) 429 (28%) 1,788 (28%)
NO_HSD_QUAR_12
20 (0.3%) 3 (0.2%) 17 (0.3%)
<7.0% 2,293 (29%) 395 (25%) 1,898 (30%)
>=21.0% 912 (12%) 212 (14%) 700 (11%)
13.0-20.9% 1,795 (23%) 393 (25%) 1,402 (22%)
7.0-12.9% 2,832 (36%) 552 (35%) 2,280 (36%)
Population.density 0.17
Metro 6,284 (80%) 1,230 (79%) 5,054 (80%)
Rural 138 (1.8%) 23 (1.5%) 115 (1.8%)
Unknown 204 (2.6%) 35 (2.3%) 169 (2.7%)
Urban 1,226 (16%) 267 (17%) 959 (15%)
Charlson.Deyo.Score <0.001
>=3 168 (2.1%) 30 (1.9%) 138 (2.2%)
0 5,242 (67%) 971 (62%) 4,271 (68%)
1 2,019 (26%) 446 (29%) 1,573 (25%)
2 423 (5.4%) 108 (6.9%) 315 (5.0%)
TNM_CLIN_T
98 (1.2%) 19 (1.2%) 79 (1.3%)
c0 3 (<0.1%) 1 (<0.1%) 2 (<0.1%)
c1 423 (5.4%) 105 (6.8%) 318 (5.1%)
c2 1,959 (25%) 392 (25%) 1,567 (25%)
c3 3,786 (48%) 726 (47%) 3,060 (49%)
c4 1,191 (15%) 207 (13%) 984 (16%)
cX 392 (5.0%) 105 (6.8%) 287 (4.6%)
TNM_CLIN_N 0.001
100 (1.3%) 21 (1.4%) 79 (1.3%)
c0 5,134 (65%) 1,003 (65%) 4,131 (66%)
c1 2,195 (28%) 416 (27%) 1,779 (28%)
cX 423 (5.4%) 115 (7.4%) 308 (4.9%)
TNM_PATH_T
245 (3.1%) 62 (4.0%) 183 (2.9%)
p0 234 (3.0%) 37 (2.4%) 197 (3.1%)
p1 879 (11%) 172 (11%) 707 (11%)
p2 811 (10%) 212 (14%) 599 (9.5%)
p3 4,720 (60%) 777 (50%) 3,943 (63%)
p4 216 (2.8%) 41 (2.6%) 175 (2.8%)
pIS 25 (0.3%) 5 (0.3%) 20 (0.3%)
pX 722 (9.2%) 249 (16%) 473 (7.5%)
TNM_PATH_N <0.001
248 (3.2%) 61 (3.9%) 187 (3.0%)
p0 3,639 (46%) 792 (51%) 2,847 (45%)
p1 3,282 (42%) 458 (29%) 2,824 (45%)
pX 683 (8.7%) 244 (16%) 439 (7.0%)
ANALYTIC_STAGE_GROUP <0.001
AJCC Stage Group unknown 94 (1.2%) 27 (1.7%) 67 (1.1%)
Stage 0 74 (0.9%) 20 (1.3%) 54 (0.9%)
Stage I 1,470 (19%) 370 (24%) 1,100 (17%)
Stage II 5,747 (73%) 1,045 (67%) 4,702 (75%)
Stage III 467 (5.9%) 93 (6.0%) 374 (5.9%)
GRADE.2 <0.001
Moderately differentiated 2,570 (33%) 571 (37%) 1,999 (32%)
Poorly differentiated 1,537 (20%) 348 (22%) 1,189 (19%)
Unknown 3,187 (41%) 500 (32%) 2,687 (43%)
Well differentiated, differentiated 558 (7.1%) 136 (8.7%) 422 (6.7%)
RX_SUMM_SURG_PRIM_SITE.2.2 0.016
Pancreatectomy, NOS 79 (1.0%) 17 (1.1%) 62 (1.0%)
Partial pancreatectomy, distal 894 (11%) 146 (9.4%) 748 (12%)
Total 1,061 (14%) 234 (15%) 827 (13%)
Whipple 5,818 (74%) 1,158 (74%) 4,660 (74%)
Margins 0.11
R1 780 (9.9%) 140 (9.0%) 640 (10%)
R2 32 (0.4%) 10 (0.6%) 22 (0.3%)
Ro 6,323 (81%) 1,275 (82%) 5,048 (80%)
Unknown 717 (9.1%) 130 (8.4%) 587 (9.3%)
Downstaging <0.001
No 928 (12%) 127 (8.2%) 801 (13%)
Unknown 2,683 (34%) 549 (35%) 2,134 (34%)
Yes 4,241 (54%) 879 (57%) 3,362 (53%)
DX_LASTCONTACT_DEATH_MONTHS 23.00 (14.50, 36.07) 21.88 (12.65, 38.38) 23.20 (15.11, 35.75) 0.012
Unknown 1,566 80 1,486
PUF_VITAL_STATUS.2 2,201 (35%) 320 (22%) 1,881 (39%) <0.001
Unknown 1,565 80 1,485

1 Statistics presented: Median (IQR); n (%)

2 Statistical tests performed: Wilcoxon rank-sum test; chi-square test of independence

### Recoding No High School degree from blanks to unknown
PreopNeoPaper$NO_HSD_QUAR_12[PreopNeoPaper$NO_HSD_QUAR_12 ==""] <- "Unknown"

##Recoding Data within TNM Clin T
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T =="c0"] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T == "cX"] <- "Unknown"

##Recoding Data within TNM Clin N
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N == "cX"] <- "Unknown"

##Recoding Data within TNM Path T
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T =="pIS"] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T == "pX"] <- "Unknown"

##Recoding Data within TNM Path N
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N =="pX"] <- "Unknown"
##Recoding Analytical Stages removing Stage IV patients
PreopNeoPaper$ANALYTIC_STAGE_GROUP[PreopNeoPaper$ANALYTIC_STAGE_GROUP == "AJCC Stage Group unknown"] <- "Unknown"

##Recoding income
PreopNeoPaper$MED_INC_QUAR_12[PreopNeoPaper$MED_INC_QUAR_12 == ""] <- "Unknown"



###Labeling Columns for MISvsMISConversionNCDBDemographicTable
var_label(PreopNeoPaperDemotable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(PreopNeoPaperDemotable$PUF_VITAL_STATUS.2) <- "Vital Status"
#Recode Preop XRT = 1 NeoAdjuvant multiagent= 0
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent == "Pre Op XRT" ] <- 1
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent =="PreOp Multiagent"] <- 0

###Recode preop XRT and Neoadjuvant column back to original
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 1 ] <- "Pre Op XRT"
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 0 ] <- "PreOp Multiagent"
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
Neoadjoddsratio <- 
  PreopXRTOddsratio %>%
  mutate(PreopXRTOddsratio, NeoMultiAgent = ifelse(Single.vs.Multi.Agent == 1, 2,
                                                   ifelse(Single.vs.Multi.Agent == 0 , 1, 100)))
## Neoadjoddsratio change 2 to become the nonevent
Neoadjoddsratio$NeoMultiAgent[Neoadjoddsratio$NeoMultiAgent == 2] <- 0

###Make Singlevsmultiagent column numeric
PreopNeoPaper$Single.vs.Multi.Agent <- as.numeric(PreopNeoPaper$Single.vs.Multi.Agent)

### Preopxrtoddsratio recoding age to a <75 and >75, and 51-75
PreopXRTOddsratioB <- 
  PreopXRTOddsratio %>%
  mutate(PreopXRTOddsratio, AgeB = ifelse(AGE > 75, ">75",
                                          ifelse(AGE < 51 , "<51", "51-75")))
#### recoding Unknowns to NA PreopxrtoddsratioB
PreopXRTOddsratioB$INSURANCE_STATUS.2[PreopXRTOddsratioB$INSURANCE_STATUS.2 =="Unknown"] <- NA
PreopXRTOddsratioB$MED_INC_QUAR_12[PreopXRTOddsratioB$MED_INC_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$NO_HSD_QUAR_12[PreopXRTOddsratioB$NO_HSD_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$Population.density[PreopXRTOddsratioB$Population.density =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_T[PreopXRTOddsratioB$TNM_CLIN_T =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_N[PreopXRTOddsratioB$TNM_CLIN_N =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_PATH_N[PreopXRTOddsratioB$TNM_PATH_N =="Unknown"] <- NA
PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP[PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
PreopXRTOddsratioB$Margins[PreopXRTOddsratioB$Margins =="Unknown"] <- NA
PreopXRTOddsratioB$GRADE.2[PreopXRTOddsratioB$GRADE.2 =="Unknown"] <- NA
PreopXRTOddsratioB$Downstaging[PreopXRTOddsratioB$Downstaging =="Unknown"] <- NA

#### recoding Unknowns to NA Neoadjoddsratio
Neoadjoddsratio$INSURANCE_STATUS.2[Neoadjoddsratio$INSURANCE_STATUS.2 =="Unknown"] <- NA
Neoadjoddsratio$MED_INC_QUAR_12[Neoadjoddsratio$MED_INC_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$NO_HSD_QUAR_12[Neoadjoddsratio$NO_HSD_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$Population.density[Neoadjoddsratio$Population.density =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_T[Neoadjoddsratio$TNM_CLIN_T =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_N[Neoadjoddsratio$TNM_CLIN_N =="Unknown"] <- NA
Neoadjoddsratio$TNM_PATH_N[Neoadjoddsratio$TNM_PATH_N =="Unknown"] <- NA
Neoadjoddsratio$ANALYTIC_STAGE_GROUP[Neoadjoddsratio$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
Neoadjoddsratio$Margins[Neoadjoddsratio$Margins =="Unknown"] <- NA
Neoadjoddsratio$GRADE.2[Neoadjoddsratio$GRADE.2 =="Unknown"] <- NA
Neoadjoddsratio$Downstaging[Neoadjoddsratio$Downstaging =="Unknown"] <- NA
#Recode Preop XRT = 1 NeoAdjuvant multiagent= 0
PreopXRTOddsratioB$Single.vs.Multi.Agent[PreopXRTOddsratioB$Single.vs.Multi.Agent == "Pre Op XRT" ] <- 1
PreopXRTOddsratioB$Single.vs.Multi.Agent[PreopXRTOddsratioB$Single.vs.Multi.Agent =="PreOp Multiagent"] <- 0
###Make Singlevsmultiagent column numeric
PreopXRTOddsratioB$Single.vs.Multi.Agent <- as.numeric(PreopXRTOddsratioB$Single.vs.Multi.Agent)
##Univariant Model PreopxrtdOddsratio
UnivariantModel <- PreopXRTOddsratioB %>%
  select(Single.vs.Multi.Agent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
  tbl_uvregression(
    method = glm,
    y = Single.vs.Multi.Agent,
    method.args = list(family = binomial),
    exponentiate = TRUE,
    pvalue_fun = ~style_pvalue(.x, digits = 2)
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
####Multivariant analysis preopxrt
MVOR <- 
  glm(Single.vs.Multi.Agent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + GRADE.2 + RX_SUMM_SURG_PRIM_SITE.2.2 + Downstaging, 
      data = PreopXRTOddsratioB,
      family = binomial("logit"))
###continue on to merge the table sets
MVORTable <-
  tbl_regression(MVOR, exponentiate = T,
                 pvalue_fun = ~style_pvalue(.x, digits = 2),
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels() 
tbl_merge(
  list(UnivariantModel, MVORTable),
  tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels() 
Characteristic Univariable Multivariable
N OR1 95% CI1 p-value OR1 95% CI1 p-value
AgeB 7,852
<51 — — — —
>75 1.49 1.17, 1.90 0.001 1.56 1.03, 2.37 0.037
51-75 1.04 0.86, 1.27 0.70 1.00 0.74, 1.37 >0.99
RACE.2 7,852
Black — — — —
Other 0.40 0.27, 0.58 <0.001 0.38 0.20, 0.69 0.002
White 0.65 0.54, 0.77 <0.001 0.65 0.48, 0.87 0.003
INSURANCE_STATUS.2 7,743
Medicaid — — — —
Medicare 0.99 0.76, 1.31 0.96 0.98 0.65, 1.53 0.94
Not Insured 1.60 1.00, 2.54 0.047 1.87 0.93, 3.74 0.076
Private Insurance/Managed Care/Goverment 0.84 0.65, 1.10 0.20 0.92 0.61, 1.42 0.69
MED_INC_QUAR_12 7,852
— — — —
< $38,000 1.67 0.63, 5.80 0.35 1.38 0.17, 28.4 0.78
>=$63,000 1.05 0.39, 3.61 0.94 0.90 0.11, 18.5 0.93
$38,000-$47,999 1.33 0.50, 4.61 0.60 1.09 0.14, 22.2 0.94
$48,000-$62,999 1.20 0.45, 4.14 0.74 1.06 0.13, 21.7 0.96
NO_HSD_QUAR_12 7,852
— — — —
<7.0% 1.18 0.39, 5.07 0.79 1.05 0.81, 1.35 0.73
>=21.0% 1.72 0.57, 7.40 0.39 0.98 0.70, 1.37 0.92
13.0-20.9% 1.59 0.53, 6.83 0.46 0.99 0.78, 1.27 0.96
7.0-12.9% 1.37 0.46, 5.89 0.61 — —
Population.density 7,648
Metro — — — —
Rural 0.82 0.51, 1.27 0.39 0.97 0.46, 1.87 0.92
Urban 1.14 0.98, 1.33 0.077 1.16 0.89, 1.49 0.27
Charlson.Deyo.Score 7,852
>=3 — —
0 1.05 0.71, 1.59 0.83
1 1.30 0.88, 2.00 0.20
2 1.58 1.02, 2.51 0.048
GRADE.2 4,665
Moderately differentiated — — — —
Poorly differentiated 1.02 0.88, 1.19 0.75 0.99 0.81, 1.21 0.95
Well differentiated, differentiated 1.13 0.91, 1.39 0.27 1.14 0.87, 1.49 0.34
RX_SUMM_SURG_PRIM_SITE.2.2 7,852
Pancreatectomy, NOS — — — —
Partial pancreatectomy, distal 0.71 0.41, 1.29 0.24 0.43 0.16, 1.20 0.091
Total 1.03 0.61, 1.85 0.91 0.55 0.21, 1.52 0.22
Whipple 0.91 0.54, 1.60 0.72 0.48 0.19, 1.33 0.14
Downstaging 5,169
No — — — —
Yes 1.65 1.35, 2.02 <0.001 1.78 1.40, 2.30 <0.001

1 OR = Odds Ratio, CI = Confidence Interval

###PreopXRTOddsratioB will be used at the table to determine survival for the overall group

PreopXRTOddsratio$PUF_VITAL_STATUS.2[PreopXRTOddsratio$PUF_VITAL_STATUS.2 == 0] <- 2


###Subset the data so it's Only neoadj patients & only preop xrt patients prior to survival analysis

NeoadjSurvivalSubset <-
  subset(PreopXRTOddsratioB, Single.vs.Multi.Agent == 0)

PreopXRTSurvivalSubset <-
  subset(PreopXRTOddsratioB, Single.vs.Multi.Agent == 1)
### Univariant Survival Overall
OverallSurvival <-
  PreopXRTOddsratio %>%
  select(AGE, SEX, MED_INC_QUAR_12, INSURANCE_STATUS.2, Charlson.Deyo.Score, ANALYTIC_STAGE_GROUP, RX_SUMM_SURG_PRIM_SITE.2.2, GRADE.2, Downstaging, Single.vs.Multi.Agent, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) %>%
  tbl_uvregression(
    method = coxph,
    y = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2),
    exponentiate = TRUE) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Multivariant survival Overall
MVOverallSurvival <-
  coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) ~ AGE + MED_INC_QUAR_12 + INSURANCE_STATUS.2 + ANALYTIC_STAGE_GROUP + Charlson.Deyo.Score + RX_SUMM_SURG_PRIM_SITE.2.2 + GRADE.2 + Downstaging + Single.vs.Multi.Agent,
        data = PreopXRTOddsratio
  ) %>%
  tbl_regression(exponentiate = T
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
  list(OverallSurvival, MVOverallSurvival),
  tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic Univariable Multivariable
N HR1 95% CI1 p-value HR1 95% CI1 p-value
AGE 6,286 1.01 1.01, 1.01 <0.001 1.01 1.00, 1.01 <0.001
SEX 6,286
Female — —
Male 1.04 0.98, 1.11 0.2
MED_INC_QUAR_12 6,286
— — — —
< $38,000 0.96 0.54, 1.69 0.9 0.94 0.53, 1.67 0.8
>=$63,000 0.81 0.46, 1.44 0.5 0.82 0.46, 1.44 0.5
$38,000-$47,999 0.92 0.52, 1.63 0.8 0.90 0.51, 1.60 0.7
$48,000-$62,999 0.87 0.49, 1.54 0.6 0.87 0.49, 1.54 0.6
INSURANCE_STATUS.2 6,286
Medicaid — — — —
Medicare 1.12 0.96, 1.31 0.2 1.03 0.87, 1.22 0.7
Not Insured 1.03 0.78, 1.35 0.9 1.00 0.76, 1.32 >0.9
Private Insurance/Managed Care/Goverment 0.95 0.81, 1.10 0.5 0.96 0.82, 1.12 0.6
Unknown 1.23 0.92, 1.66 0.2 1.10 0.82, 1.48 0.5
Charlson.Deyo.Score 6,286
>=3 — — — —
0 0.90 0.71, 1.13 0.4 0.94 0.75, 1.19 0.6
1 0.92 0.72, 1.16 0.5 0.95 0.75, 1.20 0.7
2 1.02 0.78, 1.33 0.9 0.99 0.76, 1.29 >0.9
ANALYTIC_STAGE_GROUP 6,286
AJCC Stage Group unknown — — — —
Stage 0 0.37 0.22, 0.64 <0.001 0.43 0.25, 0.75 0.003
Stage I 0.92 0.70, 1.21 0.6 0.99 0.75, 1.30 >0.9
Stage II 1.31 1.00, 1.70 0.046 1.27 0.97, 1.65 0.079
Stage III 1.41 1.06, 1.88 0.018 1.44 1.08, 1.91 0.013
RX_SUMM_SURG_PRIM_SITE.2.2 6,286
Pancreatectomy, NOS — — — —
Partial pancreatectomy, distal 0.91 0.66, 1.26 0.6 1.02 0.74, 1.41 >0.9
Total 1.13 0.82, 1.56 0.4 1.18 0.86, 1.63 0.3
Whipple 1.04 0.76, 1.42 0.8 1.11 0.81, 1.52 0.5
GRADE.2 6,286
Moderately differentiated — — — —
Poorly differentiated 1.26 1.16, 1.37 <0.001 1.23 1.13, 1.34 <0.001
Unknown 0.82 0.76, 0.88 <0.001 0.87 0.81, 0.93 <0.001
Well differentiated, differentiated 0.85 0.75, 0.97 0.012 0.87 0.77, 0.98 0.025
Downstaging 6,286
No — — — —
Unknown 0.83 0.75, 0.92 <0.001 0.86 0.78, 0.95 0.002
Yes 0.64 0.58, 0.70 <0.001 0.70 0.64, 0.77 <0.001
Single.vs.Multi.Agent 6,286
Pre Op XRT — — — —
PreOp Multiagent 0.78 0.73, 0.84 <0.001 0.78 0.73, 0.84 <0.001

1 HR = Hazard Ratio, CI = Confidence Interval

### Univariant Survival Neoadj
UVNeoChemoSurvival <-
  NeoadjSurvivalSubset %>%
  select(AGE, SEX, MED_INC_QUAR_12, INSURANCE_STATUS.2, Charlson.Deyo.Score, ANALYTIC_STAGE_GROUP, RX_SUMM_SURG_PRIM_SITE.2.2, GRADE.2, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) %>%
  tbl_uvregression(
    method = coxph,
    y = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2),
    exponentiate = TRUE) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Multivariant survival Neoadj
MVNeoChemoSurvival <-
  coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) ~ AGE + MED_INC_QUAR_12 + INSURANCE_STATUS.2 + ANALYTIC_STAGE_GROUP + Charlson.Deyo.Score + RX_SUMM_SURG_PRIM_SITE.2.2 + GRADE.2 + Downstaging,
        data = NeoadjSurvivalSubset
  ) %>%
  tbl_regression(exponentiate = T
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
  list(UVNeoChemoSurvival, MVNeoChemoSurvival),
  tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic Univariable Multivariable
N HR1 95% CI1 p-value HR1 95% CI1 p-value
AGE 4,811 1.01 1.00, 1.01 <0.001 1.00 0.99, 1.01 0.6
SEX 4,811
Female — —
Male 0.96 0.88, 1.05 0.4
MED_INC_QUAR_12 4,811
— — — —
< $38,000 0.78 0.37, 1.65 0.5 0.30 0.07, 1.24 0.10
>=$63,000 0.64 0.31, 1.36 0.2 0.34 0.08, 1.39 0.13
$38,000-$47,999 0.72 0.34, 1.51 0.4 0.37 0.09, 1.55 0.2
$48,000-$62,999 0.68 0.32, 1.43 0.3 0.34 0.08, 1.41 0.14
INSURANCE_STATUS.2 4,755
Medicaid — — — —
Medicare 0.94 0.75, 1.16 0.6 0.95 0.63, 1.42 0.8
Not Insured 0.95 0.61, 1.47 0.8 1.67 0.91, 3.05 0.10
Private Insurance/Managed Care/Goverment 0.79 0.63, 0.97 0.028 0.88 0.61, 1.27 0.5
Charlson.Deyo.Score 4,811
>=3 — — — —
0 0.84 0.59, 1.20 0.3 0.83 0.46, 1.49 0.5
1 0.86 0.60, 1.24 0.4 0.87 0.48, 1.58 0.7
2 0.76 0.50, 1.15 0.2 0.82 0.40, 1.66 0.6
ANALYTIC_STAGE_GROUP 4,811
AJCC Stage Group unknown — — — —
Stage 0 2.28 1.33, 3.90 0.003 1.54 0.19, 12.6 0.7
Stage I 1.65 1.09, 2.50 0.017 1.26 0.18, 9.09 0.8
Stage II 1.76 1.17, 2.63 0.006 1.31 0.18, 9.41 0.8
Stage III 1.51 0.97, 2.36 0.068 1.37 0.18, 10.2 0.8
RX_SUMM_SURG_PRIM_SITE.2.2 4,811
Pancreatectomy, NOS — — — —
Partial pancreatectomy, distal 1.65 0.98, 2.77 0.061 1.84 0.25, 13.3 0.5
Total 1.28 0.76, 2.16 0.4 1.17 0.16, 8.47 0.9
Whipple 1.42 0.85, 2.36 0.2 1.67 0.23, 11.9 0.6
GRADE.2 2,854
Moderately differentiated — — — —
Poorly differentiated 1.01 0.88, 1.16 >0.9 1.07 0.89, 1.27 0.5
Well differentiated, differentiated 0.90 0.74, 1.09 0.3 0.83 0.65, 1.06 0.13
Downstaging 3,161
No — — — —
Yes 1.18 1.00, 1.38 0.051 1.23 0.97, 1.54 0.082

1 HR = Hazard Ratio, CI = Confidence Interval

### Univariant Survival PreopXRTGroup
UVPreopxrtSurvival <-
  PreopXRTSurvivalSubset %>%
  select(AGE, SEX, MED_INC_QUAR_12, INSURANCE_STATUS.2, Charlson.Deyo.Score, ANALYTIC_STAGE_GROUP, RX_SUMM_SURG_PRIM_SITE.2.2, GRADE.2, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) %>%
  tbl_uvregression(
    method = coxph,
    y = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2),
    exponentiate = TRUE) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Multivariant survival preopXRT Group
MVPreopXRTSurvival <-
  coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) ~ AGE + MED_INC_QUAR_12 + INSURANCE_STATUS.2 + ANALYTIC_STAGE_GROUP + Charlson.Deyo.Score + RX_SUMM_SURG_PRIM_SITE.2.2 + GRADE.2 + Downstaging,
        data = PreopXRTSurvivalSubset
  ) %>%
  tbl_regression(exponentiate = T
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
## Warning in fitter(X, Y, istrat, offset, init, control, weights = weights, :
## Loglik converged before variable 2,3,4,5 ; coefficient may be infinite.
###Merged Neo Univariant and Multivariant
tbl_merge(
  list(UVPreopxrtSurvival, MVPreopXRTSurvival),
  tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic Univariable Multivariable
N HR1 95% CI1 p-value HR1 95% CI1 p-value
AGE 1,475 1.01 1.00, 1.02 0.2 1.02 0.99, 1.05 0.12
SEX 1,475
Female — —
Male 1.12 0.90, 1.40 0.3
MED_INC_QUAR_12 1,475
— — — —
< $38,000 0.61 0.08, 4.41 0.6 171,659 0.00, Inf >0.9
>=$63,000 0.83 0.12, 6.00 0.9 207,064 0.00, Inf >0.9
$38,000-$47,999 0.62 0.09, 4.51 0.6 138,164 0.00, Inf >0.9
$48,000-$62,999 0.74 0.10, 5.33 0.8 160,676 0.00, Inf >0.9
INSURANCE_STATUS.2 1,445
Medicaid — — — —
Medicare 0.65 0.41, 1.02 0.061 0.43 0.20, 0.95 0.038
Not Insured 0.47 0.21, 1.02 0.055 0.55 0.15, 2.06 0.4
Private Insurance/Managed Care/Goverment 0.60 0.38, 0.95 0.028 0.57 0.28, 1.16 0.12
Charlson.Deyo.Score 1,475
>=3 — — — —
0 1.25 0.46, 3.37 0.7 0.69 0.21, 2.25 0.5
1 1.19 0.44, 3.25 0.7 0.65 0.19, 2.15 0.5
2 1.30 0.45, 3.72 0.6 0.72 0.20, 2.66 0.6
ANALYTIC_STAGE_GROUP 1,475
AJCC Stage Group unknown — — — —
Stage 0 1.27 0.49, 3.33 0.6 18.9 0.79, 452 0.070
Stage I 1.21 0.55, 2.62 0.6 14.4 0.94, 222 0.056
Stage II 1.17 0.54, 2.52 0.7 12.4 0.83, 185 0.067
Stage III 1.33 0.55, 3.20 0.5 15.3 0.89, 263 0.061
RX_SUMM_SURG_PRIM_SITE.2.2 1,475
Pancreatectomy, NOS — — — —
Partial pancreatectomy, distal 2.52 0.87, 7.31 0.090 8.81 0.68, 115 0.10
Total 1.64 0.57, 4.73 0.4 8.31 0.66, 105 0.10
Whipple 1.61 0.58, 4.48 0.4 7.98 0.64, 99.9 0.11
GRADE.2 1,008
Moderately differentiated — — — —
Poorly differentiated 0.95 0.68, 1.32 0.8 0.83 0.54, 1.27 0.4
Well differentiated, differentiated 1.38 0.94, 2.00 0.10 1.14 0.70, 1.86 0.6
Downstaging 951
No — — — —
Yes 1.12 0.73, 1.72 0.6 0.93 0.53, 1.64 0.8

1 HR = Hazard Ratio, CI = Confidence Interval