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