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     ✓ dplyr   1.0.1
## ✓ tidyr   1.1.1     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
## ── 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(dplyr)
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
library(zoo)
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
PanCancer2000 <- read.csv( ("PancreaticCancer2000.csv"))
PanCancer2001 <- read.csv( ("PancreaticCancer2001.csv"))
PanCancer2002 <- read.csv( ("PancreaticCancer2002.csv"))
PanCancer2003 <- read.csv( ("PancreaticCancer2003.csv"))
PanCancer2004 <- read.csv( ("PancreaticCancer2004.csv"))
PanCancer2005 <- read.csv( ("PancreaticCancer2005.csv"))
PanCancer2006 <- read.csv( ("PancreaticCancer2006.csv"))
PanCancer2007 <- read.csv( ("PancreaticCancer2007.csv"))
PanCancer2008 <- read.csv( ("PancreaticCancer2008.csv"))
PanCancer2009 <- read.csv( ("PancreaticCancer2009.csv"))
PanCancer2010 <- read.csv( ("PancreaticCancer2010.csv"))
PanCancer2011 <- read.csv( ("PancreaticCancer2011.csv"))
PanCancer2012 <- read.csv( ("PancreaticCancer2012.csv"))
PanCancer2013 <- read.csv( ("PancreaticCancer2013.csv"))
PanCancer2014 <- read.csv( ("PancreaticCancer2014.csv"))
PanCancer2015 <- read.csv( ("PancreaticCancer2015.csv"))
PanCancer2016 <- read.csv( ("PancreaticCancer2016.csv"))
PanCancer2017 <- read.csv( ("PancreaticCancer2017.csv"))
PanCancer2018 <- read.csv( ("PancreaticData2018.csv"))
PanCancer2019 <- read.csv( ("PancreaticData2019.csv"))
PanCancer2020 <- read.csv( ("PancreaticData2020.csv"))
MonthSurvival <- read.csv( ("MonthSurvival.csv"))
PanCancer2000$Medical.Record.Number <- as.character(PanCancer2000$Medical.Record.Number)
PanCancer2001$Medical.Record.Number <- as.character(PanCancer2001$Medical.Record.Number)
PanCancer2002$Medical.Record.Number <- as.character(PanCancer2002$Medical.Record.Number)
PanCancer2003$Medical.Record.Number <- as.character(PanCancer2003$Medical.Record.Number)
PanCancer2004$Medical.Record.Number <- as.character(PanCancer2004$Medical.Record.Number)
PanCancer2005$Medical.Record.Number <- as.character(PanCancer2005$Medical.Record.Number)
PanCancer2006$Medical.Record.Number <- as.character(PanCancer2006$Medical.Record.Number)
PanCancer2007$Medical.Record.Number <- as.character(PanCancer2007$Medical.Record.Number)
PanCancer2008$Medical.Record.Number <- as.character(PanCancer2008$Medical.Record.Number)
PanCancer2009$Medical.Record.Number <- as.character(PanCancer2009$Medical.Record.Number)
PanCancer2010$Medical.Record.Number <- as.character(PanCancer2010$Medical.Record.Number)
PanCancer2011$Medical.Record.Number <- as.character(PanCancer2011$Medical.Record.Number)
PanCancer2012$Medical.Record.Number <- as.character(PanCancer2012$Medical.Record.Number)
PanCancer2013$Medical.Record.Number <- as.character(PanCancer2013$Medical.Record.Number)
PanCancer2014$Medical.Record.Number <- as.character(PanCancer2014$Medical.Record.Number)
PanCancer2015$Medical.Record.Number <- as.character(PanCancer2015$Medical.Record.Number)
PanCancer2016$Medical.Record.Number <- as.character(PanCancer2016$Medical.Record.Number)
PanCancer2017$Medical.Record.Number <- as.character(PanCancer2017$Medical.Record.Number)
PanCancer2018$Medical.Record.Number <- as.character(PanCancer2018$Medical.Record.Number)
PanCancer2019$Medical.Record.Number <- as.character(PanCancer2019$Medical.Record.Number)
PanCancer2020$Medical.Record.Number <- as.character(PanCancer2020$Medical.Record.Number)
MonthSurvival$Medical.Record.Number <- as.character(MonthSurvival$Medical.Record.Number)
PanCancer2000$Postal.Code.at.Diagnosis <- as.character(PanCancer2000$Postal.Code.at.Diagnosis)
PanCancer2001$Postal.Code.at.Diagnosis <- as.character(PanCancer2001$Postal.Code.at.Diagnosis)
PanCancer2002$Postal.Code.at.Diagnosis <- as.character(PanCancer2002$Postal.Code.at.Diagnosis)
PanCancer2003$Postal.Code.at.Diagnosis <- as.character(PanCancer2003$Postal.Code.at.Diagnosis)
PanCancer2004$Postal.Code.at.Diagnosis <- as.character(PanCancer2004$Postal.Code.at.Diagnosis)
PanCancer2005$Postal.Code.at.Diagnosis <- as.character(PanCancer2005$Postal.Code.at.Diagnosis)
PanCancer2006$Postal.Code.at.Diagnosis <- as.character(PanCancer2006$Postal.Code.at.Diagnosis)
PanCancer2007$Postal.Code.at.Diagnosis <- as.character(PanCancer2007$Postal.Code.at.Diagnosis)
PanCancer2008$Postal.Code.at.Diagnosis <- as.character(PanCancer2008$Postal.Code.at.Diagnosis)
PanCancer2009$Postal.Code.at.Diagnosis <- as.character(PanCancer2009$Postal.Code.at.Diagnosis)
PanCancer2010$Postal.Code.at.Diagnosis <- as.character(PanCancer2010$Postal.Code.at.Diagnosis)
PanCancer2011$Postal.Code.at.Diagnosis <- as.character(PanCancer2011$Postal.Code.at.Diagnosis)
PanCancer2012$Postal.Code.at.Diagnosis <- as.character(PanCancer2012$Postal.Code.at.Diagnosis)
PanCancer2013$Postal.Code.at.Diagnosis <- as.character(PanCancer2013$Postal.Code.at.Diagnosis)
PanCancer2014$Postal.Code.at.Diagnosis <- as.character(PanCancer2014$Postal.Code.at.Diagnosis)
PanCancer2015$Postal.Code.at.Diagnosis <- as.character(PanCancer2015$Postal.Code.at.Diagnosis)
PanCancer2016$Postal.Code.at.Diagnosis <- as.character(PanCancer2016$Postal.Code.at.Diagnosis)
PanCancer2017$Postal.Code.at.Diagnosis <- as.character(PanCancer2017$Postal.Code.at.Diagnosis)
PanCancer2018$Postal.Code.at.Diagnosis <- as.character(PanCancer2018$Postal.Code.at.Diagnosis)
PanCancer2019$Postal.Code.at.Diagnosis <- as.character(PanCancer2019$Postal.Code.at.Diagnosis)
PanCancer2020$Postal.Code.at.Diagnosis <- as.character(PanCancer2020$Postal.Code.at.Diagnosis)
PanCancer2000$Tumor.Size.Summary <- as.character(PanCancer2000$Tumor.Size.Summary)
PanCancer2001$Tumor.Size.Summary <- as.character(PanCancer2001$Tumor.Size.Summary)
PanCancer2002$Tumor.Size.Summary <- as.character(PanCancer2002$Tumor.Size.Summary)
PanCancer2003$Tumor.Size.Summary <- as.character(PanCancer2003$Tumor.Size.Summary)
PanCancer2004$Tumor.Size.Summary <- as.character(PanCancer2004$Tumor.Size.Summary)
PanCancer2005$Tumor.Size.Summary <- as.character(PanCancer2005$Tumor.Size.Summary)
PanCancer2006$Tumor.Size.Summary <- as.character(PanCancer2006$Tumor.Size.Summary)
PanCancer2007$Tumor.Size.Summary <- as.character(PanCancer2007$Tumor.Size.Summary)
PanCancer2008$Tumor.Size.Summary <- as.character(PanCancer2008$Tumor.Size.Summary)
PanCancer2009$Tumor.Size.Summary <- as.character(PanCancer2009$Tumor.Size.Summary)
PanCancer2010$Tumor.Size.Summary <- as.character(PanCancer2010$Tumor.Size.Summary)
PanCancer2011$Tumor.Size.Summary <- as.character(PanCancer2011$Tumor.Size.Summary)
PanCancer2012$Tumor.Size.Summary <- as.character(PanCancer2012$Tumor.Size.Summary)
PanCancer2013$Tumor.Size.Summary <- as.character(PanCancer2013$Tumor.Size.Summary)
PanCancer2014$Tumor.Size.Summary <- as.character(PanCancer2014$Tumor.Size.Summary)
PanCancer2015$Tumor.Size.Summary <- as.character(PanCancer2015$Tumor.Size.Summary)
PanCancer2016$Tumor.Size.Summary <- as.character(PanCancer2016$Tumor.Size.Summary)
PanCancer2017$Tumor.Size.Summary <- as.character(PanCancer2017$Tumor.Size.Summary)
PanCancer2018$Tumor.Size.Summary <- as.character(PanCancer2018$Tumor.Size.Summary)
PanCancer2019$Tumor.Size.Summary <- as.character(PanCancer2019$Tumor.Size.Summary)
PanCancer2020$Tumor.Size.Summary <- as.character(PanCancer2020$Tumor.Size.Summary)
PanCancer2000$AJCC.Post.Therapy.N <- as.character(PanCancer2000$AJCC.Post.Therapy.N)
PanCancer2001$AJCC.Post.Therapy.N <- as.character(PanCancer2001$AJCC.Post.Therapy.N)
PanCancer2002$AJCC.Post.Therapy.N <- as.character(PanCancer2002$AJCC.Post.Therapy.N)
PanCancer2003$AJCC.Post.Therapy.N <- as.character(PanCancer2003$AJCC.Post.Therapy.N)
PanCancer2004$AJCC.Post.Therapy.N <- as.character(PanCancer2004$AJCC.Post.Therapy.N)
PanCancer2005$AJCC.Post.Therapy.N <- as.character(PanCancer2005$AJCC.Post.Therapy.N)
PanCancer2006$AJCC.Post.Therapy.N <- as.character(PanCancer2006$AJCC.Post.Therapy.N)
PanCancer2007$AJCC.Post.Therapy.N <- as.character(PanCancer2007$AJCC.Post.Therapy.N)
PanCancer2008$AJCC.Post.Therapy.N <- as.character(PanCancer2008$AJCC.Post.Therapy.N)
PanCancer2009$AJCC.Post.Therapy.N <- as.character(PanCancer2009$AJCC.Post.Therapy.N)
PanCancer2010$AJCC.Post.Therapy.N <- as.character(PanCancer2010$AJCC.Post.Therapy.N)
PanCancer2011$AJCC.Post.Therapy.N <- as.character(PanCancer2011$AJCC.Post.Therapy.N)
PanCancer2012$AJCC.Post.Therapy.N <- as.character(PanCancer2012$AJCC.Post.Therapy.N)
PanCancer2013$AJCC.Post.Therapy.N <- as.character(PanCancer2013$AJCC.Post.Therapy.N)
PanCancer2014$AJCC.Post.Therapy.N <- as.character(PanCancer2014$AJCC.Post.Therapy.N)
PanCancer2015$AJCC.Post.Therapy.N <- as.character(PanCancer2015$AJCC.Post.Therapy.N)
PanCancer2016$AJCC.Post.Therapy.N <- as.character(PanCancer2016$AJCC.Post.Therapy.N)
PanCancer2017$AJCC.Post.Therapy.N <- as.character(PanCancer2017$AJCC.Post.Therapy.N)
PanCancer2018$AJCC.Post.Therapy.N <- as.character(PanCancer2018$AJCC.Post.Therapy.N)
PanCancer2019$AJCC.Post.Therapy.N <- as.character(PanCancer2019$AJCC.Post.Therapy.N)
PanCancer2020$AJCC.Post.Therapy.N <- as.character(PanCancer2020$AJCC.Post.Therapy.N)
PanCancer2000$AJCC.Post.Therapy.T <- as.character(PanCancer2000$AJCC.Post.Therapy.T)
PanCancer2001$AJCC.Post.Therapy.T <- as.character(PanCancer2001$AJCC.Post.Therapy.T)
PanCancer2002$AJCC.Post.Therapy.T <- as.character(PanCancer2002$AJCC.Post.Therapy.T)
PanCancer2003$AJCC.Post.Therapy.T <- as.character(PanCancer2003$AJCC.Post.Therapy.T)
PanCancer2004$AJCC.Post.Therapy.T <- as.character(PanCancer2004$AJCC.Post.Therapy.T)
PanCancer2005$AJCC.Post.Therapy.T <- as.character(PanCancer2005$AJCC.Post.Therapy.T)
PanCancer2006$AJCC.Post.Therapy.T <- as.character(PanCancer2006$AJCC.Post.Therapy.T)
PanCancer2007$AJCC.Post.Therapy.T <- as.character(PanCancer2007$AJCC.Post.Therapy.T)
PanCancer2008$AJCC.Post.Therapy.T <- as.character(PanCancer2008$AJCC.Post.Therapy.T)
PanCancer2009$AJCC.Post.Therapy.T <- as.character(PanCancer2009$AJCC.Post.Therapy.T)
PanCancer2010$AJCC.Post.Therapy.T <- as.character(PanCancer2010$AJCC.Post.Therapy.T)
PanCancer2011$AJCC.Post.Therapy.T <- as.character(PanCancer2011$AJCC.Post.Therapy.T)
PanCancer2012$AJCC.Post.Therapy.T <- as.character(PanCancer2012$AJCC.Post.Therapy.T)
PanCancer2013$AJCC.Post.Therapy.T <- as.character(PanCancer2013$AJCC.Post.Therapy.T)
PanCancer2014$AJCC.Post.Therapy.T <- as.character(PanCancer2014$AJCC.Post.Therapy.T)
PanCancer2015$AJCC.Post.Therapy.T <- as.character(PanCancer2015$AJCC.Post.Therapy.T)
PanCancer2016$AJCC.Post.Therapy.T <- as.character(PanCancer2016$AJCC.Post.Therapy.T)
PanCancer2017$AJCC.Post.Therapy.T <- as.character(PanCancer2017$AJCC.Post.Therapy.T)
PanCancer2018$AJCC.Post.Therapy.T <- as.character(PanCancer2018$AJCC.Post.Therapy.T)
PanCancer2019$AJCC.Post.Therapy.T <- as.character(PanCancer2019$AJCC.Post.Therapy.T)
PanCancer2020$AJCC.Post.Therapy.T <- as.character(PanCancer2020$AJCC.Post.Therapy.T)
PanCancer2000$AJCC.Post.Therapy.M <- as.character(PanCancer2000$AJCC.Post.Therapy.M)
PanCancer2001$AJCC.Post.Therapy.M <- as.character(PanCancer2001$AJCC.Post.Therapy.M)
PanCancer2002$AJCC.Post.Therapy.M <- as.character(PanCancer2002$AJCC.Post.Therapy.M)
PanCancer2003$AJCC.Post.Therapy.M <- as.character(PanCancer2003$AJCC.Post.Therapy.M)
PanCancer2004$AJCC.Post.Therapy.M <- as.character(PanCancer2004$AJCC.Post.Therapy.M)
PanCancer2005$AJCC.Post.Therapy.M <- as.character(PanCancer2005$AJCC.Post.Therapy.M)
PanCancer2006$AJCC.Post.Therapy.M <- as.character(PanCancer2006$AJCC.Post.Therapy.M)
PanCancer2007$AJCC.Post.Therapy.M <- as.character(PanCancer2007$AJCC.Post.Therapy.M)
PanCancer2008$AJCC.Post.Therapy.M <- as.character(PanCancer2008$AJCC.Post.Therapy.M)
PanCancer2009$AJCC.Post.Therapy.M <- as.character(PanCancer2009$AJCC.Post.Therapy.M)
PanCancer2010$AJCC.Post.Therapy.M <- as.character(PanCancer2010$AJCC.Post.Therapy.M)
PanCancer2011$AJCC.Post.Therapy.M <- as.character(PanCancer2011$AJCC.Post.Therapy.M)
PanCancer2012$AJCC.Post.Therapy.M <- as.character(PanCancer2012$AJCC.Post.Therapy.M)
PanCancer2013$AJCC.Post.Therapy.M <- as.character(PanCancer2013$AJCC.Post.Therapy.M)
PanCancer2014$AJCC.Post.Therapy.M <- as.character(PanCancer2014$AJCC.Post.Therapy.M)
PanCancer2015$AJCC.Post.Therapy.M <- as.character(PanCancer2015$AJCC.Post.Therapy.M)
PanCancer2016$AJCC.Post.Therapy.M <- as.character(PanCancer2016$AJCC.Post.Therapy.M)
PanCancer2017$AJCC.Post.Therapy.M <- as.character(PanCancer2017$AJCC.Post.Therapy.M)
PanCancer2018$AJCC.Post.Therapy.M <- as.character(PanCancer2018$AJCC.Post.Therapy.M)
PanCancer2019$AJCC.Post.Therapy.M <- as.character(PanCancer2019$AJCC.Post.Therapy.M)
PanCancer2020$AJCC.Post.Therapy.M <- as.character(PanCancer2020$AJCC.Post.Therapy.M)
PanCancer2000$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2000$AJCC.Post.Therapy.Stage.Group)
PanCancer2001$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2001$AJCC.Post.Therapy.Stage.Group)
PanCancer2002$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2002$AJCC.Post.Therapy.Stage.Group)
PanCancer2003$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2003$AJCC.Post.Therapy.Stage.Group)
PanCancer2004$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2004$AJCC.Post.Therapy.Stage.Group)
PanCancer2005$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2005$AJCC.Post.Therapy.Stage.Group)
PanCancer2006$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2006$AJCC.Post.Therapy.Stage.Group)
PanCancer2007$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2007$AJCC.Post.Therapy.Stage.Group)
PanCancer2008$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2008$AJCC.Post.Therapy.Stage.Group)
PanCancer2009$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2009$AJCC.Post.Therapy.Stage.Group)
PanCancer2010$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2010$AJCC.Post.Therapy.Stage.Group)
PanCancer2011$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2011$AJCC.Post.Therapy.Stage.Group)
PanCancer2012$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2012$AJCC.Post.Therapy.Stage.Group)
PanCancer2013$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2013$AJCC.Post.Therapy.Stage.Group)
PanCancer2014$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2014$AJCC.Post.Therapy.Stage.Group)
PanCancer2015$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2015$AJCC.Post.Therapy.Stage.Group)
PanCancer2016$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2016$AJCC.Post.Therapy.Stage.Group)
PanCancer2017$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2017$AJCC.Post.Therapy.Stage.Group)
PanCancer2018$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2018$AJCC.Post.Therapy.Stage.Group)
PanCancer2019$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2019$AJCC.Post.Therapy.Stage.Group)
PanCancer2020$AJCC.Post.Therapy.Stage.Group <- as.character(PanCancer2020$AJCC.Post.Therapy.Stage.Group)
PanCancer2000$Primary.Surgeon.NPI <- as.character(PanCancer2000$Primary.Surgeon.NPI)
PanCancer2001$Primary.Surgeon.NPI <- as.character(PanCancer2001$Primary.Surgeon.NPI)
PanCancer2002$Primary.Surgeon.NPI <- as.character(PanCancer2002$Primary.Surgeon.NPI)
PanCancer2003$Primary.Surgeon.NPI <- as.character(PanCancer2003$Primary.Surgeon.NPI)
PanCancer2004$Primary.Surgeon.NPI <- as.character(PanCancer2004$Primary.Surgeon.NPI)
PanCancer2005$Primary.Surgeon.NPI <- as.character(PanCancer2005$Primary.Surgeon.NPI)
PanCancer2006$Primary.Surgeon.NPI <- as.character(PanCancer2006$Primary.Surgeon.NPI)
PanCancer2007$Primary.Surgeon.NPI <- as.character(PanCancer2007$Primary.Surgeon.NPI)
PanCancer2008$Primary.Surgeon.NPI <- as.character(PanCancer2008$Primary.Surgeon.NPI)
PanCancer2009$Primary.Surgeon.NPI <- as.character(PanCancer2009$Primary.Surgeon.NPI)
PanCancer2010$Primary.Surgeon.NPI <- as.character(PanCancer2010$Primary.Surgeon.NPI)
PanCancer2011$Primary.Surgeon.NPI <- as.character(PanCancer2011$Primary.Surgeon.NPI)
PanCancer2012$Primary.Surgeon.NPI <- as.character(PanCancer2012$Primary.Surgeon.NPI)
PanCancer2013$Primary.Surgeon.NPI <- as.character(PanCancer2013$Primary.Surgeon.NPI)
PanCancer2014$Primary.Surgeon.NPI <- as.character(PanCancer2014$Primary.Surgeon.NPI)
PanCancer2015$Primary.Surgeon.NPI <- as.character(PanCancer2015$Primary.Surgeon.NPI)
PanCancer2016$Primary.Surgeon.NPI <- as.character(PanCancer2016$Primary.Surgeon.NPI)
PanCancer2017$Primary.Surgeon.NPI <- as.character(PanCancer2017$Primary.Surgeon.NPI)
PanCancer2018$Primary.Surgeon.NPI <- as.character(PanCancer2018$Primary.Surgeon.NPI)
PanCancer2019$Primary.Surgeon.NPI <- as.character(PanCancer2019$Primary.Surgeon.NPI)
PanCancer2020$Primary.Surgeon.NPI <- as.character(PanCancer2020$Primary.Surgeon.NPI)
PanCancer2000$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2000$Radiation.Oncology.Physician.NPI)
PanCancer2001$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2001$Radiation.Oncology.Physician.NPI)
PanCancer2002$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2002$Radiation.Oncology.Physician.NPI)
PanCancer2003$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2003$Radiation.Oncology.Physician.NPI)
PanCancer2004$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2004$Radiation.Oncology.Physician.NPI)
PanCancer2005$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2005$Radiation.Oncology.Physician.NPI)
PanCancer2006$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2006$Radiation.Oncology.Physician.NPI)
PanCancer2007$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2007$Radiation.Oncology.Physician.NPI)
PanCancer2008$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2008$Radiation.Oncology.Physician.NPI)
PanCancer2009$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2009$Radiation.Oncology.Physician.NPI)
PanCancer2010$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2010$Radiation.Oncology.Physician.NPI)
PanCancer2011$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2011$Radiation.Oncology.Physician.NPI)
PanCancer2012$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2012$Radiation.Oncology.Physician.NPI)
PanCancer2013$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2013$Radiation.Oncology.Physician.NPI)
PanCancer2014$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2014$Radiation.Oncology.Physician.NPI)
PanCancer2015$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2015$Radiation.Oncology.Physician.NPI)
PanCancer2016$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2016$Radiation.Oncology.Physician.NPI)
PanCancer2017$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2017$Radiation.Oncology.Physician.NPI)
PanCancer2018$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2018$Radiation.Oncology.Physician.NPI)
PanCancer2019$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2019$Radiation.Oncology.Physician.NPI)
PanCancer2020$Radiation.Oncology.Physician.NPI <- as.character(PanCancer2020$Radiation.Oncology.Physician.NPI)
PanCancerAllYears <- bind_rows(PanCancer2000, PanCancer2001, PanCancer2002, PanCancer2003, PanCancer2004, PanCancer2005, PanCancer2005, PanCancer2006, PanCancer2007, PanCancer2008, PanCancer2009, PanCancer2010, PanCancer2011, PanCancer2012, PanCancer2013, PanCancer2014, PanCancer2015, PanCancer2016, PanCancer2017, PanCancer2018, PanCancer2019, PanCancer2020)
MonthSurvival <-
  MonthSurvival %>%
  select(Medical.Record.Number, Date.of.Last.Contact, Date.of.Initial.Diagnosis)
AllFinal <-
merge(MonthSurvival, PanCancerAllYears, by.x = "Medical.Record.Number", by.y = "Medical.Record.Number", all.x=F, all.y=FALSE)
AllFinal$Date.of.Initial.Diagnosis.y <- mdy(AllFinal$Date.of.Initial.Diagnosis.y)
AllFinal$Date.of.Last.Contact <- mdy(AllFinal$Date.of.Last.Contact)
## Warning: 8 failed to parse.
AllFinal$Date.of.First.Surgery <- mdy(AllFinal$Date.of.First.Surgery)
## Warning: 1129 failed to parse.
AllFinal$MonthDate <- (as.yearmon(AllFinal$Date.of.Last.Contact, format = "%m/%Y")-
               as.yearmon(AllFinal$Date.of.Initial.Diagnosis.y, format = "%m/%Y"))*12
###removing duplicates
AllFinalUnique <- 
  AllFinal %>% 
  distinct()
LocalDataSet <- AllFinalUnique[!duplicated(AllFinalUnique[c("Medical.Record.Number")]),]
rm(PanCancer2000,PanCancer2001,PanCancer2002,PanCancer2003,PanCancer2004,PanCancer2005,PanCancer2006,PanCancer2007,PanCancer2008,PanCancer2009,PanCancer2010,PanCancer2011,PanCancer2012,PanCancer2013,PanCancer2014,PanCancer2015,PanCancer2016,PanCancer2017,PanCancer2018,PanCancer2019,PanCancer2020,PanCancerAllYears)
LocalDataSet4 <- 
  LocalDataSet %>%
  mutate(LocalDataSet, Era = ifelse(Date.of.Initial.Diagnosis.y > "2011-01-01", "Era2", 
                                               ifelse(Date.of.Initial.Diagnosis.y > "2000-01-01", "Era1", NA)))
LocalDataSet4$Date.of.First.Surgery <- as.Date(LocalDataSet4$Date.of.First.Surgery)


LocalDataSet4 <-
  LocalDataSet4 %>%
  mutate(LocalDataSet4, Surgery = ifelse(Date.of.First.Surgery > "2000-01-01", "Yes",
                                         ifelse(Date.of.First.Surgery == "No", "No","No")))


LocalDataSet4$Surgery[is.na(LocalDataSet4$Surgery)] <- "No"
table(LocalDataSet4$Surgery)
## 
##   No  Yes 
## 1061  515
LocalDataSet4$X1st.Course.Date.Radiation.Started <- mdy(LocalDataSet4$X1st.Course.Date.Radiation.Started)
## Warning: 1134 failed to parse.
LocalDataSet4 <-
  LocalDataSet4 %>%
  mutate(LocalDataSet4, Radiation = ifelse(X1st.Course.Date.Radiation.Started > "2000-01-01", "Yes",
                                         ifelse(X1st.Course.Date.Radiation.Started == "No", "No","No")))


LocalDataSet4$Radiation[is.na(LocalDataSet4$Radiation)] <- "No"
table(LocalDataSet4$Radiation)
## 
##   No  Yes 
## 1134  442

LocalDataSet2 <- LocalDataSet1 %>% mutate(LocalDataSet1, StagingBest = ifelse(Best.Summary.Stage == “0”, “In situ”, NA))

LocalDataSet3 <- LocalDataSet2 %>% mutate(LocalDataSet2, StagingSummary = ifelse(Summary.Stage.2018 == “0 In situ”, “In Situ”, NA))

LocalDataSet4 <- LocalDataSet3 %>% unite(Staging, c(“Best.Summary.Stage”, “Summary.Stage.2018”))

LocalDataSet4\(Staging[LocalDataSet4\)Staging == “NA_0 In situ”] <- “In Situ” LocalDataSet4\(Staging[LocalDataSet4\)Staging == “0_NA”] <- “In Situ”

LocalDataSet4\(Staging[LocalDataSet4\)Staging == “NA_1 Localized”] <- “Localized” LocalDataSet4\(Staging[LocalDataSet4\)Staging == “1_NA”] <- “Localized”

LocalDataSet4\(Staging[LocalDataSet4\)Staging == “NA_2 Regional by direct extension only”] <- “Regional by direct extension only” LocalDataSet4\(Staging[LocalDataSet4\)Staging == “2_NA”] <- “Regional by direct extension only”

LocalDataSet4\(Staging[LocalDataSet4\)Staging == “NA_3 Regional lymph nodes only”] <- “Regional lymph nodes only” LocalDataSet4\(Staging[LocalDataSet4\)Staging == “3_NA”] <- “Regional lymph nodes only”

LocalDataSet4\(Staging[LocalDataSet4\)Staging == “NA_4 Regional by BOTH direct extension AND lymph node involvement”] <- “Regional by BOTH direct extension AND lymph node involvement” LocalDataSet4\(Staging[LocalDataSet4\)Staging == “4_NA”] <- “Regional by BOTH direct extension AND lymph node involvement”

LocalDataSet4\(Staging[LocalDataSet4\)Staging == “5_NA”] <- NA

LocalDataSet4\(Staging[LocalDataSet4\)Staging == “NA_7 Distant site(s)/node(s) involved”] <- “Distant Site(s)/node(s) involved” LocalDataSet4\(Staging[LocalDataSet4\)Staging == “7_NA”] <- “Distant Site(s)/node(s) involved”

LocalDataSet4\(Staging[LocalDataSet4\)Staging == “NA_9 Unknown if extension or metastasis (unstaged, unknown, or unspecified); Death Certificate Only Case”] <- NA LocalDataSet4\(Staging[LocalDataSet4\)Staging == “9_NA”] <- NA

LocalDataSet4\(Staging[LocalDataSet4\)Staging == “NA_NA”] <- NA LocalDataSet4\(Staging[LocalDataSet4\)Staging == “NA_”] <- NA

table(LocalDataSet4\(Staging) table(LocalDataSet4\)Race.1)

LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "98  Other"] <- "Non-White"
LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "02  Black"] <- "Non-White"
LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "03  American Indian, Aleutian, or Eskimo"] <- "Non-White"
LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "05  Japanese"] <- "Non-White"
LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "04  Chinese"] <- "Non-White"

LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "06  Filipino"] <- "Non-White"
LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "10  Vietnamese"] <- "Non-White"
LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "98  Other"] <- "Non-White"


LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "99  Unknown"] <- "Non-White"

LocalDataSet4$Race.1[LocalDataSet4$Race.1 == "01  White"] <- "White"


table(LocalDataSet4$Race.1)
## 
## Non-White     White 
##        24      1552
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "0"] <- "EminentlyResectable"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "1"] <- "EminentlyResectable"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "1A"] <- "EminentlyResectable"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "1B"] <- "EminentlyResectable"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "2"] <- "LocallyAdvanced"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "2A"] <- "LocallyAdvanced"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "2B"] <- "LocallyAdvanced"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "3"] <- "LocallyAdvanced"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "4"] <- "Stage4"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "4B"] <- "Stage4"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "88"] <- NA
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "99"] <- NA
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == ""] <- NA







table(LocalDataSet4$AJCC.Clinical.Stage.Group )
## 
## EminentlyResectable     LocallyAdvanced              Stage4 
##                 309                 559                 482
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "00  None; chemotherapy not part of planned first course; autopsy only"] <- "No"
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "87  Pt/pt`s guardian refused chemotherapy; refusal noted"] <- "No"
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "86  Reason unknown for no chemo; recommended but not admin"] <- "No"
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "82  Chemotherapy contraindicated due to pt risk factors"] <- "No"
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "85  Chemo not admin; Pt died prior to planned/recommended therapy"] <- "No"
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "01  Chemotherapy, NOS"] <- "Yes"
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "02  Chemotherapy, single agent"] <- "Yes"
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "03  Chemotherapy, multiple agents (combination regimen)"] <- "Yes"
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "88  Chemotherapy recommended, unk if administered"] <- NA
LocalDataSet4$X1st.Course.Chemotherapy.Summ[LocalDataSet4$X1st.Course.Chemotherapy.Summ == "99  Unk if chemotherapy recommended/administered; death cert only"] <- NA

table(LocalDataSet4$X1st.Course.Chemotherapy.Summ)
## 
##   No  Yes 
##  529 1018
table(LocalDataSet4$Marital.Status.at.DX)
## 
##                                                                                               1  Single (never married) 
##                                                                                                                     146 
##                                                                                       2  Married (including common law) 
##                                                                                                                     910 
##                                                                                                            3  Separated 
##                                                                                                                       8 
##                                                                                                             4  Divorced 
##                                                                                                                     161 
##                                                                                                              5  Widowed 
##                                                                                                                     234 
## 6  Unmarried or Domestic Partner (same sex or opposite sex, registered or unregistered, other than common law marriage) 
##                                                                                                                      35 
##                                                                                                              9  Unknown 
##                                                                                                                      82
LocalDataSet4$Marital.Status.at.DX[LocalDataSet4$Marital.Status.at.DX == "1  Single (never married)"] <- "Single"
LocalDataSet4$Marital.Status.at.DX[LocalDataSet4$Marital.Status.at.DX == "2  Married (including common law)"] <- "Married"
LocalDataSet4$Marital.Status.at.DX[LocalDataSet4$Marital.Status.at.DX == "3  Separated"] <- "Divorced/Separated"
LocalDataSet4$Marital.Status.at.DX[LocalDataSet4$Marital.Status.at.DX == "4  Divorced"] <- "Divorced/Separated"
LocalDataSet4$Marital.Status.at.DX[LocalDataSet4$Marital.Status.at.DX == "5  Widowed"] <- "Widowed"
LocalDataSet4$Marital.Status.at.DX[LocalDataSet4$Marital.Status.at.DX == "6  Unmarried or Domestic Partner (same sex or opposite sex, registered or unregistered, other than common law marriage)"] <- "Single"
LocalDataSet4$Marital.Status.at.DX[LocalDataSet4$Marital.Status.at.DX == "9  Unknown"] <- NA
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "01  Not Insured"] <- "Uninsured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "02  Not Insured, self pay"] <- "Uninsured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "20  Private Ins: Managed care, HMO, PPO"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "31  Medicaid"] <- "Medicaid"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "35  Medicaid - Admin through Managed Care Plan"] <- "Medicaid"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "60  Medicare w/o supplement, Medicare, NOS"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "61  Medicare with supplement, NOS"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "62  Medicare - Admin through Managed Care Plan"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "63  Medicare with private supplement"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "64  Medicare with Medicaid eligibility"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "64  Medicare with Medicaid eligibility"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "65  TRICARE"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "66  Military"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "67  Veterans Affairs"] <- "Insured"
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "99  Insurance status unknown"] <- NA
LocalDataSet4$Primary.Payer.at.DX[LocalDataSet4$Primary.Payer.at.DX == "10  Insurance, NOS"] <- NA

table(LocalDataSet4$Primary.Payer.at.DX)
## 
##   Insured  Medicaid Uninsured 
##      1308        77        26
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "80133  Large cell neuroendocrine carcinoma"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "81503  Pancreatic endocrine tumor, malignant (C25._)"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "80313  Giant cell carcinoma"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "80703  Squamous cell carcinoma, NOS"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "81513  Insulinoma, malignant"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "81533  Gastrinoma, malignant"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "81503  Islet cell carcinoma (C25._)"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "81581  Endocrine tumor, functioning, NOS"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "82403  Carcinoid tumor, NOS (except of appendix)"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "82403  Carcinoid, NOS  (except of appendix)"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "82403  Neuroendocrine carcinoma, low grade"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "82403  Neuroendocrine carcinoma, well-differentiated"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "82403  Neuroendocrine tumor, grade 1"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "82493  Neuroendocrine tumor, grade 2"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "82463  Neuroendocrine tumor, well differentiated (C50._)"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "82463  Neuroendocrine carcinoma, NOS"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "84532  Intraductal papillary mucinous neoplasm with high-grade dysplasia (C25._)"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "84532  Intraductal papillary-mucinous carcinoma, non-invasive"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "84533  Intraductal papillary mucinous neoplasm (IPMN) with an associated invasive  carcinoma (C25._)"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "84533  Intraductal papillary-mucinous carcinoma, invasive"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "88903  Leiomyosarcoma, NOS"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "89363  GIST, malignant"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "92603  Ewing sarcoma"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "95913  Non-Hodgkin lymphoma, NOS"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "96803  Lymphoma, diffuse large B-cell, NOS"] <- NA
LocalDataSet4$Histo.Behavior.ICD.O.3[LocalDataSet4$Histo.Behavior.ICD.O.3 == "96803  Lymphoma, malig, large B-cell, diffuse, (DLBCL), NOS"] <- NA


table(LocalDataSet4$Histo.Behavior.ICD.O.3)
## 
##                                                     
##                                                   3 
##                                       80003  Cancer 
##                                                   4 
##                                   80003  Malignancy 
##                                                   1 
##                          80003  Neoplasm, malignant 
##                                                   8 
##                        80003  Tumor, malignant, NOS 
##                                                   1 
##                       80102  Carcinoma in situ, NOS 
##                                                   1 
##                               80103  Carcinoma, NOS 
##                                                  29 
##                   80213  Carcinoma, anaplastic, NOS 
##                                                   1 
##                        80333  Sarcomatoid carcinoma 
##                                                   1 
##                    80413  Small cell carcinoma, NOS 
##                                                   1 
##                     80463  Non-small cell carcinoma 
##                                                   8 
##                          81403  Adenocarcinoma, NOS 
##                                                1204 
##              81443  Adenocarcinoma, intestinal type 
##                                                   2 
## 81543  Mixed islet cell and exocrine adenocarcinoma 
##                                                   1 
##       82443  Carcinoid and adenocarcinoma, combined 
##                                                   1 
##          82443  Mixed adenoneuroendocrine carcinoma 
##                                                   1 
##           82553  Adenocarcinoma with mixed subtypes 
##                                                   4 
##                    83233  Mixed cell adenocarcinoma 
##                                                   1 
##                      84403  Cystadenocarcinoma, NOS 
##                                                   1 
##              84523  Solid pseudopapillary carcinoma 
##                                                   4 
##                            84803  Colloid carcinoma 
##                                                   1 
##                      84803  Mucinous adenocarcinoma 
##                                                  22 
##                           84803  Mucinous carcinoma 
##                                                   2 
##                        84803  Mucous adenocarcinoma 
##                                                   1 
##               84813  Mucin-producing adenocarcinoma 
##                                                   2 
##              84903  Signet ring cell adenocarcinoma 
##                                                   1 
##                   84903  Signet ring cell carcinoma 
##                                                   2 
##                     85003  Duct adenocarcinoma, NOS 
##                                                  40 
##                          85003  Duct carcinoma, NOS 
##                                                   1 
##                        85003  Ductal carcinoma, NOS 
##                                                  55 
##             85003  Infiltrating duct adenocarcinoma 
##                                                  16 
##             85003  Infiltrating duct carcinoma, NOS 
##                                                  28 
##              85213  Infiltrating ductular carcinoma 
##                                                   7 
##                        85503  Acinar cell carcinoma 
##                                                   1 
##                   85503  Acinic cell adenocarcinoma 
##                                                   1 
##                      85603  Adenosquamous carcinoma 
##                                                   6 
##                   85753  Metaplastic carcinoma, NOS 
##                                                   1
LocalDataSetDT <-
  LocalDataSet4 %>%
  select(Age.at.Diagnosis, Sex, Race.1, Primary.Payer.at.DX, Marital.Status.at.DX, Histo.Behavior.ICD.O.3, Era, AJCC.Clinical.Stage.Group, Vital.Status, MonthDate, Surgery, X1st.Course.Chemotherapy.Summ, Radiation)
DTLocalDataStage4 <- 
  subset(LocalDataSetDT, AJCC.Clinical.Stage.Group == "Stage4")

DTLocalized <- 
  subset(LocalDataSetDT, AJCC.Clinical.Stage.Group == "LocallyAdvanced" | AJCC.Clinical.Stage.Group == "EminentlyResectable")

DTLocallyAdvanced <- 
  subset(LocalDataSetDT, AJCC.Clinical.Stage.Group == "LocallyAdvanced")

DTEminentlyResectable <- 
  subset(LocalDataSetDT, AJCC.Clinical.Stage.Group == "EminentlyResectable")

DTSurgery <- 
  subset(LocalDataSetDT, Surgery == "Yes")

DTSurgery$AJCC.Clinical.Stage.Group[DTSurgery$AJCC.Clinical.Stage.Group == "Stage4"] <- NA


table(DTLocalized$AJCC.Clinical.Stage.Group)
## 
## EminentlyResectable     LocallyAdvanced 
##                 309                 559
DTSurgery <-
  DTSurgery %>%
  select(Age.at.Diagnosis, Sex, Race.1, Primary.Payer.at.DX, Marital.Status.at.DX, Histo.Behavior.ICD.O.3, Era, AJCC.Clinical.Stage.Group, Vital.Status, MonthDate, X1st.Course.Chemotherapy.Summ, Radiation)
LocalDataSetDT %>%
  tbl_summary(
    by = Era,
    digits = all_continuous() ~ 2,) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
  bold_p() %>%
  add_overall() %>%
  modify_header(label ~ "**Variable**") %>%
  modify_spanning_header(c("stat_1", "stat_2") ~ "**Demographic Table Everyone Era1 vs Era2*") %>%
  bold_labels() 
## 4 observations missing `Era` have been removed. To include these observations, use `forcats::fct_explicit_na()` on `Era` column before passing to `tbl_summary()`.
## There was an error in 'add_p()' for variable 'Histo.Behavior.ICD.O.3', p-value omitted:
## Error in stats::fisher.test(data[[variable]], as.factor(data[[by]])): FEXACT error 7(location). LDSTP=18180 is too small for this problem,
##   (pastp=6.29157, ipn_0:=ipoin[itp=298]=6073, stp[ipn_0]=5.63479).
## Increase workspace or consider using 'simulate.p.value=TRUE'
Variable Overall, N = 1,5721 *Demographic Table Everyone Era1 vs Era2 p-value2
Era1, N = 5621 Era2, N = 1,0101
Age.at.Diagnosis 69.00 (61.00, 77.00) 69.00 (60.00, 77.00) 69.00 (62.00, 77.00) 0.70
Sex 0.99
1 Male 813 (52%) 290 (52%) 523 (52%)
2 Female 759 (48%) 272 (48%) 487 (48%)
Race.1 0.64
Non-White 21 (1.3%) 6 (1.1%) 15 (1.5%)
White 1,551 (99%) 556 (99%) 995 (99%)
Primary.Payer.at.DX 0.038
Insured 1,308 (93%) 445 (94%) 863 (92%)
Medicaid 77 (5.5%) 17 (3.6%) 60 (6.4%)
Uninsured 26 (1.8%) 12 (2.5%) 14 (1.5%)
Unknown 161 88 73
Marital.Status.at.DX 0.004
Divorced/Separated 169 (11%) 54 (10%) 115 (12%)
Married 910 (61%) 342 (65%) 568 (59%)
Single 181 (12%) 44 (8.3%) 137 (14%)
Widowed 234 (16%) 90 (17%) 144 (15%)
Unknown 78 32 46
Histo.Behavior.ICD.O.3
80003 Cancer 3 (0.2%) 0 (0%) 3 (0.3%)
80003 Malignancy 1 (<0.1%) 0 (0%) 1 (0.1%)
80003 Neoplasm, malignant 8 (0.5%) 5 (0.9%) 3 (0.3%)
80003 Tumor, malignant, NOS 1 (<0.1%) 1 (0.2%) 0 (0%)
80102 Carcinoma in situ, NOS 1 (<0.1%) 1 (0.2%) 0 (0%)
80103 Carcinoma, NOS 29 (2.0%) 20 (3.7%) 9 (1.0%)
80213 Carcinoma, anaplastic, NOS 1 (<0.1%) 1 (0.2%) 0 (0%)
80333 Sarcomatoid carcinoma 1 (<0.1%) 0 (0%) 1 (0.1%)
80413 Small cell carcinoma, NOS 1 (<0.1%) 1 (0.2%) 0 (0%)
80463 Non-small cell carcinoma 8 (0.5%) 8 (1.5%) 0 (0%)
81403 Adenocarcinoma, NOS 1,204 (82%) 470 (87%) 734 (80%)
81443 Adenocarcinoma, intestinal type 2 (0.1%) 0 (0%) 2 (0.2%)
81543 Mixed islet cell and exocrine adenocarcinoma 1 (<0.1%) 1 (0.2%) 0 (0%)
82443 Carcinoid and adenocarcinoma, combined 1 (<0.1%) 0 (0%) 1 (0.1%)
82443 Mixed adenoneuroendocrine carcinoma 1 (<0.1%) 0 (0%) 1 (0.1%)
82553 Adenocarcinoma with mixed subtypes 4 (0.3%) 1 (0.2%) 3 (0.3%)
83233 Mixed cell adenocarcinoma 1 (<0.1%) 0 (0%) 1 (0.1%)
84403 Cystadenocarcinoma, NOS 1 (<0.1%) 1 (0.2%) 0 (0%)
84523 Solid pseudopapillary carcinoma 4 (0.3%) 0 (0%) 4 (0.4%)
84803 Colloid carcinoma 1 (<0.1%) 0 (0%) 1 (0.1%)
84803 Mucinous adenocarcinoma 22 (1.5%) 9 (1.7%) 13 (1.4%)
84803 Mucinous carcinoma 2 (0.1%) 0 (0%) 2 (0.2%)
84803 Mucous adenocarcinoma 1 (<0.1%) 0 (0%) 1 (0.1%)
84813 Mucin-producing adenocarcinoma 2 (0.1%) 2 (0.4%) 0 (0%)
84903 Signet ring cell adenocarcinoma 1 (<0.1%) 0 (0%) 1 (0.1%)
84903 Signet ring cell carcinoma 2 (0.1%) 2 (0.4%) 0 (0%)
85003 Duct adenocarcinoma, NOS 40 (2.7%) 8 (1.5%) 32 (3.5%)
85003 Duct carcinoma, NOS 1 (<0.1%) 0 (0%) 1 (0.1%)
85003 Ductal carcinoma, NOS 55 (3.8%) 0 (0%) 55 (6.0%)
85003 Infiltrating duct adenocarcinoma 16 (1.1%) 2 (0.4%) 14 (1.5%)
85003 Infiltrating duct carcinoma, NOS 28 (1.9%) 6 (1.1%) 22 (2.4%)
85213 Infiltrating ductular carcinoma 7 (0.5%) 0 (0%) 7 (0.8%)
85503 Acinar cell carcinoma 1 (<0.1%) 0 (0%) 1 (0.1%)
85503 Acinic cell adenocarcinoma 1 (<0.1%) 0 (0%) 1 (0.1%)
85603 Adenosquamous carcinoma 6 (0.4%) 2 (0.4%) 4 (0.4%)
85753 Metaplastic carcinoma, NOS 1 (<0.1%) 0 (0%) 1 (0.1%)
Unknown 112 21 91
AJCC.Clinical.Stage.Group <0.001
EminentlyResectable 309 (23%) 57 (13%) 252 (27%)
LocallyAdvanced 559 (41%) 202 (47%) 357 (39%)
Stage4 482 (36%) 170 (40%) 312 (34%)
Unknown 222 133 89
Vital.Status <0.001
0 Dead 1,284 (82%) 536 (95%) 748 (74%)
1 Alive 288 (18%) 26 (4.6%) 262 (26%)
MonthDate 8.00 (3.00, 17.00) 8.00 (3.00, 14.00) 8.00 (3.00, 18.00) 0.59
Unknown 4 0 4
Surgery 515 (33%) 131 (23%) 384 (38%) <0.001
X1st.Course.Chemotherapy.Summ 1,018 (66%) 372 (67%) 646 (65%) 0.46
Unknown 29 9 20
Radiation 442 (28%) 197 (35%) 245 (24%) <0.001

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

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

DTSurgery %>%
  tbl_summary(
    by = Era,
    digits = all_continuous() ~ 2,) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
  bold_p() %>%
  add_overall() %>%
  modify_header(label ~ "**Variable**") %>%
  modify_spanning_header(c("stat_1", "stat_2") ~ "**Demographic Table Surgical Patients Era1 vs Era2*") %>%
  bold_labels() 
## There was an error in 'add_p()' for variable 'Histo.Behavior.ICD.O.3', p-value omitted:
## Error in stats::fisher.test(data[[variable]], as.factor(data[[by]])): FEXACT error 7(location). LDSTP=18540 is too small for this problem,
##   (pastp=13.5846, ipn_0:=ipoin[itp=208]=1370, stp[ipn_0]=14.0366).
## Increase workspace or consider using 'simulate.p.value=TRUE'
Variable Overall, N = 5151 *Demographic Table Surgical Patients Era1 vs Era2 p-value2
Era1, N = 1311 Era2, N = 3841
Age.at.Diagnosis 66.00 (58.00, 73.00) 65.00 (57.50, 72.00) 67.00 (58.75, 73.00) 0.34
Sex 0.21
1 Male 270 (52%) 62 (47%) 208 (54%)
2 Female 245 (48%) 69 (53%) 176 (46%)
Race.1 >0.99
Non-White 11 (2.1%) 3 (2.3%) 8 (2.1%)
White 504 (98%) 128 (98%) 376 (98%)
Primary.Payer.at.DX 0.18
Insured 430 (92%) 99 (90%) 331 (92%)
Medicaid 34 (7.2%) 8 (7.3%) 26 (7.2%)
Uninsured 5 (1.1%) 3 (2.7%) 2 (0.6%)
Unknown 46 21 25
Marital.Status.at.DX 0.16
Divorced/Separated 58 (12%) 14 (11%) 44 (12%)
Married 310 (63%) 87 (71%) 223 (61%)
Single 74 (15%) 12 (9.8%) 62 (17%)
Widowed 49 (10.0%) 10 (8.1%) 39 (11%)
Unknown 24 8 16
Histo.Behavior.ICD.O.3
80003 Neoplasm, malignant 1 (0.2%) 1 (0.8%) 0 (0%)
80102 Carcinoma in situ, NOS 1 (0.2%) 1 (0.8%) 0 (0%)
81403 Adenocarcinoma, NOS 278 (62%) 92 (78%) 186 (57%)
81443 Adenocarcinoma, intestinal type 2 (0.4%) 0 (0%) 2 (0.6%)
81543 Mixed islet cell and exocrine adenocarcinoma 1 (0.2%) 1 (0.8%) 0 (0%)
82443 Carcinoid and adenocarcinoma, combined 1 (0.2%) 0 (0%) 1 (0.3%)
82443 Mixed adenoneuroendocrine carcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
82553 Adenocarcinoma with mixed subtypes 3 (0.7%) 0 (0%) 3 (0.9%)
83233 Mixed cell adenocarcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
84523 Solid pseudopapillary carcinoma 3 (0.7%) 0 (0%) 3 (0.9%)
84803 Colloid carcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
84803 Mucinous adenocarcinoma 11 (2.5%) 5 (4.2%) 6 (1.8%)
84803 Mucinous carcinoma 2 (0.4%) 0 (0%) 2 (0.6%)
84803 Mucous adenocarcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
85003 Duct adenocarcinoma, NOS 37 (8.3%) 8 (6.8%) 29 (8.8%)
85003 Duct carcinoma, NOS 1 (0.2%) 0 (0%) 1 (0.3%)
85003 Ductal carcinoma, NOS 47 (11%) 0 (0%) 47 (14%)
85003 Infiltrating duct adenocarcinoma 15 (3.4%) 2 (1.7%) 13 (4.0%)
85003 Infiltrating duct carcinoma, NOS 26 (5.8%) 6 (5.1%) 20 (6.1%)
85213 Infiltrating ductular carcinoma 7 (1.6%) 0 (0%) 7 (2.1%)
85603 Adenosquamous carcinoma 5 (1.1%) 2 (1.7%) 3 (0.9%)
85753 Metaplastic carcinoma, NOS 1 (0.2%) 0 (0%) 1 (0.3%)
Unknown 69 13 56
AJCC.Clinical.Stage.Group 0.13
EminentlyResectable 176 (48%) 26 (39%) 150 (50%)
LocallyAdvanced 191 (52%) 41 (61%) 150 (50%)
Unknown 148 64 84
Vital.Status <0.001
0 Dead 343 (67%) 114 (87%) 229 (60%)
1 Alive 172 (33%) 17 (13%) 155 (40%)
MonthDate 19.00 (10.00, 36.00) 20.00 (11.00, 39.00) 18.00 (9.00, 34.50) 0.12
Unknown 1 0 1
X1st.Course.Chemotherapy.Summ 380 (75%) 98 (76%) 282 (75%) 0.85
Unknown 8 2 6
Radiation 207 (40%) 68 (52%) 139 (36%) 0.002

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

2 Statistical tests performed: Wilcoxon rank-sum test; chi-square test of independence; Fisher's exact test

DTEminentlyResectable %>%
  tbl_summary(
    by = Era,
    digits = all_continuous() ~ 2,) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
  bold_p() %>%
  add_overall() %>%
  modify_header(label ~ "**Variable**") %>%
  modify_spanning_header(c("stat_1", "stat_2") ~ "**Demographic Table EminentlyResectable Era1 vs Era2*") %>%
  bold_labels() 
## There was an error in 'add_p()' for variable 'AJCC.Clinical.Stage.Group', p-value omitted:
## Error in stats::chisq.test(data[[variable]], as.factor(data[[by]])): 'x' and 'y' must have at least 2 levels
Variable Overall, N = 3091 *Demographic Table EminentlyResectable Era1 vs Era2 p-value2
Era1, N = 571 Era2, N = 2521
Age.at.Diagnosis 69.00 (61.00, 77.00) 68.00 (63.00, 78.00) 69.00 (61.00, 77.00) 0.39
Sex 0.91
1 Male 147 (48%) 28 (49%) 119 (47%)
2 Female 162 (52%) 29 (51%) 133 (53%)
Race.1 0.56
Non-White 4 (1.3%) 1 (1.8%) 3 (1.2%)
White 305 (99%) 56 (98%) 249 (99%)
Primary.Payer.at.DX >0.99
Insured 266 (94%) 41 (95%) 225 (94%)
Medicaid 16 (5.7%) 2 (4.7%) 14 (5.8%)
Uninsured 1 (0.4%) 0 (0%) 1 (0.4%)
Unknown 26 14 12
Marital.Status.at.DX 0.083
Divorced/Separated 30 (10%) 2 (3.8%) 28 (11%)
Married 174 (59%) 37 (70%) 137 (56%)
Single 38 (13%) 3 (5.7%) 35 (14%)
Widowed 55 (19%) 11 (21%) 44 (18%)
Unknown 12 4 8
Histo.Behavior.ICD.O.3 0.20
80003 Malignancy 1 (0.4%) 0 (0%) 1 (0.5%)
80003 Neoplasm, malignant 2 (0.8%) 1 (1.9%) 1 (0.5%)
81403 Adenocarcinoma, NOS 199 (75%) 47 (89%) 152 (71%)
82553 Adenocarcinoma with mixed subtypes 1 (0.4%) 0 (0%) 1 (0.5%)
84523 Solid pseudopapillary carcinoma 3 (1.1%) 0 (0%) 3 (1.4%)
84803 Mucinous adenocarcinoma 2 (0.8%) 1 (1.9%) 1 (0.5%)
85003 Duct adenocarcinoma, NOS 13 (4.9%) 2 (3.8%) 11 (5.2%)
85003 Duct carcinoma, NOS 1 (0.4%) 0 (0%) 1 (0.5%)
85003 Ductal carcinoma, NOS 24 (9.0%) 0 (0%) 24 (11%)
85003 Infiltrating duct adenocarcinoma 6 (2.3%) 1 (1.9%) 5 (2.3%)
85003 Infiltrating duct carcinoma, NOS 10 (3.8%) 1 (1.9%) 9 (4.2%)
85213 Infiltrating ductular carcinoma 1 (0.4%) 0 (0%) 1 (0.5%)
85603 Adenosquamous carcinoma 2 (0.8%) 0 (0%) 2 (0.9%)
85753 Metaplastic carcinoma, NOS 1 (0.4%) 0 (0%) 1 (0.5%)
Unknown 43 4 39
AJCC.Clinical.Stage.Group
EminentlyResectable 309 (100%) 57 (100%) 252 (100%)
Vital.Status <0.001
0 Dead 202 (65%) 52 (91%) 150 (60%)
1 Alive 107 (35%) 5 (8.8%) 102 (40%)
MonthDate 13.00 (6.00, 27.50) 14.00 (7.00, 31.00) 12.00 (6.00, 27.00) 0.56
Unknown 2 0 2
Surgery 176 (57%) 26 (46%) 150 (60%) 0.077
X1st.Course.Chemotherapy.Summ 203 (66%) 35 (61%) 168 (67%) 0.50
Unknown 2 0 2
Radiation 109 (35%) 26 (46%) 83 (33%) 0.10

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

2 Statistical tests performed: Wilcoxon rank-sum test; chi-square test of independence; Fisher's exact test

DTLocalDataStage4  %>%
  tbl_summary(
    by = Era,
    digits = all_continuous() ~ 2,) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
  bold_p() %>%
  add_overall() %>%
  modify_header(label ~ "**Variable**") %>%
  modify_spanning_header(c("stat_1", "stat_2") ~ "**Demographic Table Stage 4 Era1 vs Era2*") %>%
  bold_labels() 
## Warning in 'add_p()' for variable 'Primary.Payer.at.DX':
##  simpleWarning in stats::chisq.test(data[[variable]], as.factor(data[[by]])): Chi-squared approximation may be incorrect
## There was an error in 'add_p()' for variable 'AJCC.Clinical.Stage.Group', p-value omitted:
## Error in stats::chisq.test(data[[variable]], as.factor(data[[by]])): 'x' and 'y' must have at least 2 levels
Variable Overall, N = 4821 *Demographic Table Stage 4 Era1 vs Era2 p-value2
Era1, N = 1701 Era2, N = 3121
Age.at.Diagnosis 69.00 (61.00, 76.00) 69.00 (60.00, 75.75) 69.00 (61.00, 76.00) 0.56
Sex 0.13
1 Male 271 (56%) 104 (61%) 167 (54%)
2 Female 211 (44%) 66 (39%) 145 (46%)
Race.1 >0.99
Non-White 6 (1.2%) 2 (1.2%) 4 (1.3%)
White 476 (99%) 168 (99%) 308 (99%)
Primary.Payer.at.DX 0.18
Insured 392 (92%) 133 (94%) 259 (91%)
Medicaid 20 (4.7%) 3 (2.1%) 17 (6.0%)
Uninsured 15 (3.5%) 6 (4.2%) 9 (3.2%)
Unknown 55 28 27
Marital.Status.at.DX 0.52
Divorced/Separated 65 (14%) 23 (14%) 42 (14%)
Married 275 (61%) 103 (64%) 172 (59%)
Single 51 (11%) 14 (8.8%) 37 (13%)
Widowed 63 (14%) 20 (12%) 43 (15%)
Unknown 28 10 18
Histo.Behavior.ICD.O.3 0.014
80003 Cancer 2 (0.4%) 0 (0%) 2 (0.7%)
80003 Neoplasm, malignant 1 (0.2%) 0 (0%) 1 (0.3%)
80003 Tumor, malignant, NOS 1 (0.2%) 1 (0.6%) 0 (0%)
80103 Carcinoma, NOS 13 (2.8%) 7 (4.1%) 6 (2.0%)
80333 Sarcomatoid carcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
80413 Small cell carcinoma, NOS 1 (0.2%) 1 (0.6%) 0 (0%)
80463 Non-small cell carcinoma 5 (1.1%) 5 (3.0%) 0 (0%)
81403 Adenocarcinoma, NOS 409 (88%) 148 (88%) 261 (89%)
82553 Adenocarcinoma with mixed subtypes 2 (0.4%) 1 (0.6%) 1 (0.3%)
84803 Mucinous adenocarcinoma 12 (2.6%) 3 (1.8%) 9 (3.1%)
84813 Mucin-producing adenocarcinoma 2 (0.4%) 2 (1.2%) 0 (0%)
84903 Signet ring cell adenocarcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
84903 Signet ring cell carcinoma 1 (0.2%) 1 (0.6%) 0 (0%)
85003 Duct adenocarcinoma, NOS 3 (0.6%) 0 (0%) 3 (1.0%)
85003 Ductal carcinoma, NOS 4 (0.9%) 0 (0%) 4 (1.4%)
85003 Infiltrating duct adenocarcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
85003 Infiltrating duct carcinoma, NOS 1 (0.2%) 0 (0%) 1 (0.3%)
85503 Acinar cell carcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
85503 Acinic cell adenocarcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
85603 Adenosquamous carcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
Unknown 19 1 18
AJCC.Clinical.Stage.Group
Stage4 482 (100%) 170 (100%) 312 (100%)
Vital.Status <0.001
0 Dead 440 (91%) 168 (99%) 272 (87%)
1 Alive 42 (8.7%) 2 (1.2%) 40 (13%)
MonthDate 4.00 (2.00, 9.00) 4.00 (2.00, 8.00) 4.00 (1.75, 9.00) 0.59
Surgery 45 (9.3%) 9 (5.3%) 36 (12%) 0.037
X1st.Course.Chemotherapy.Summ 299 (63%) 108 (64%) 191 (62%) 0.73
Unknown 7 2 5
Radiation 38 (7.9%) 21 (12%) 17 (5.4%) 0.012

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

2 Statistical tests performed: Wilcoxon rank-sum test; chi-square test of independence; Fisher's exact test

DTLocalized %>%
  tbl_summary(
    by = Era,
    digits = all_continuous() ~ 2,) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
  bold_p() %>%
  add_overall() %>%
  modify_header(label ~ "**Variable**") %>%
  modify_spanning_header(c("stat_1", "stat_2") ~ "**Demographic Table Localized Era1 vs Era2*") %>%
  bold_labels() 
## There was an error in 'add_p()' for variable 'Histo.Behavior.ICD.O.3', p-value omitted:
## Error in stats::fisher.test(data[[variable]], as.factor(data[[by]])): FEXACT error 7(location). LDSTP=18480 is too small for this problem,
##   (pastp=14.9639, ipn_0:=ipoin[itp=152]=14651, stp[ipn_0]=6.85118).
## Increase workspace or consider using 'simulate.p.value=TRUE'
Variable Overall, N = 8681 *Demographic Table Localized Era1 vs Era2 p-value2
Era1, N = 2591 Era2, N = 6091
Age.at.Diagnosis 70.00 (61.00, 77.00) 70.00 (61.00, 78.00) 70.00 (62.00, 77.00) 0.53
Sex 0.67
1 Male 427 (49%) 124 (48%) 303 (50%)
2 Female 441 (51%) 135 (52%) 306 (50%)
Race.1 >0.99
Non-White 11 (1.3%) 3 (1.2%) 8 (1.3%)
White 857 (99%) 256 (99%) 601 (99%)
Primary.Payer.at.DX 0.022
Insured 742 (94%) 211 (96%) 531 (93%)
Medicaid 41 (5.2%) 5 (2.3%) 36 (6.3%)
Uninsured 8 (1.0%) 4 (1.8%) 4 (0.7%)
Unknown 77 39 38
Marital.Status.at.DX 0.006
Divorced/Separated 84 (10%) 18 (7.3%) 66 (11%)
Married 509 (61%) 164 (67%) 345 (59%)
Single 103 (12%) 18 (7.3%) 85 (14%)
Widowed 138 (17%) 46 (19%) 92 (16%)
Unknown 34 13 21
Histo.Behavior.ICD.O.3
80003 Malignancy 1 (0.1%) 0 (0%) 1 (0.2%)
80003 Neoplasm, malignant 3 (0.4%) 2 (0.8%) 1 (0.2%)
80103 Carcinoma, NOS 9 (1.1%) 7 (2.8%) 2 (0.4%)
80213 Carcinoma, anaplastic, NOS 1 (0.1%) 1 (0.4%) 0 (0%)
80463 Non-small cell carcinoma 3 (0.4%) 3 (1.2%) 0 (0%)
81403 Adenocarcinoma, NOS 650 (81%) 222 (88%) 428 (78%)
81443 Adenocarcinoma, intestinal type 1 (0.1%) 0 (0%) 1 (0.2%)
82443 Carcinoid and adenocarcinoma, combined 1 (0.1%) 0 (0%) 1 (0.2%)
82553 Adenocarcinoma with mixed subtypes 2 (0.2%) 0 (0%) 2 (0.4%)
84523 Solid pseudopapillary carcinoma 3 (0.4%) 0 (0%) 3 (0.5%)
84803 Mucinous adenocarcinoma 8 (1.0%) 5 (2.0%) 3 (0.5%)
84803 Mucinous carcinoma 2 (0.2%) 0 (0%) 2 (0.4%)
84803 Mucous adenocarcinoma 1 (0.1%) 0 (0%) 1 (0.2%)
85003 Duct adenocarcinoma, NOS 30 (3.7%) 6 (2.4%) 24 (4.4%)
85003 Duct carcinoma, NOS 1 (0.1%) 0 (0%) 1 (0.2%)
85003 Ductal carcinoma, NOS 38 (4.7%) 0 (0%) 38 (6.9%)
85003 Infiltrating duct adenocarcinoma 15 (1.9%) 2 (0.8%) 13 (2.4%)
85003 Infiltrating duct carcinoma, NOS 21 (2.6%) 3 (1.2%) 18 (3.3%)
85213 Infiltrating ductular carcinoma 7 (0.9%) 0 (0%) 7 (1.3%)
85603 Adenosquamous carcinoma 3 (0.4%) 1 (0.4%) 2 (0.4%)
85753 Metaplastic carcinoma, NOS 1 (0.1%) 0 (0%) 1 (0.2%)
Unknown 67 7 60
AJCC.Clinical.Stage.Group <0.001
EminentlyResectable 309 (36%) 57 (22%) 252 (41%)
LocallyAdvanced 559 (64%) 202 (78%) 357 (59%)
Vital.Status <0.001
0 Dead 670 (77%) 249 (96%) 421 (69%)
1 Alive 198 (23%) 10 (3.9%) 188 (31%)
MonthDate 10.00 (5.00, 22.00) 10.00 (6.00, 18.50) 11.00 (5.00, 24.00) 0.31
Unknown 2 0 2
Surgery 367 (42%) 67 (26%) 300 (49%) <0.001
X1st.Course.Chemotherapy.Summ 615 (72%) 197 (77%) 418 (70%) 0.034
Unknown 11 3 8
Radiation 364 (42%) 146 (56%) 218 (36%) <0.001

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

2 Statistical tests performed: Wilcoxon rank-sum test; chi-square test of independence; Fisher's exact test

DTLocallyAdvanced %>%
  tbl_summary(
    by = Era,
    digits = all_continuous() ~ 2,) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
  bold_p() %>%
  add_overall() %>%
  modify_header(label ~ "**Variable**") %>%
  modify_spanning_header(c("stat_1", "stat_2") ~ "**Demographic Table Locally Advanced Era1 vs Era2*") %>%
  bold_labels() 
## There was an error in 'add_p()' for variable 'Histo.Behavior.ICD.O.3', p-value omitted:
## Error in stats::fisher.test(data[[variable]], as.factor(data[[by]])): FEXACT error 7(location). LDSTP=18540 is too small for this problem,
##   (pastp=17.9441, ipn_0:=ipoin[itp=89]=5918, stp[ipn_0]=17.9929).
## Increase workspace or consider using 'simulate.p.value=TRUE'
## There was an error in 'add_p()' for variable 'AJCC.Clinical.Stage.Group', p-value omitted:
## Error in stats::chisq.test(data[[variable]], as.factor(data[[by]])): 'x' and 'y' must have at least 2 levels
Variable Overall, N = 5591 *Demographic Table Locally Advanced Era1 vs Era2 p-value2
Era1, N = 2021 Era2, N = 3571
Age.at.Diagnosis 70.00 (61.50, 77.00) 70.00 (61.00, 78.00) 70.00 (62.00, 77.00) 0.93
Sex 0.41
1 Male 280 (50%) 96 (48%) 184 (52%)
2 Female 279 (50%) 106 (52%) 173 (48%)
Race.1 >0.99
Non-White 7 (1.3%) 2 (1.0%) 5 (1.4%)
White 552 (99%) 200 (99%) 352 (99%)
Primary.Payer.at.DX 0.015
Insured 476 (94%) 170 (96%) 306 (92%)
Medicaid 25 (4.9%) 3 (1.7%) 22 (6.6%)
Uninsured 7 (1.4%) 4 (2.3%) 3 (0.9%)
Unknown 51 25 26
Marital.Status.at.DX 0.056
Divorced/Separated 54 (10%) 16 (8.3%) 38 (11%)
Married 335 (62%) 127 (66%) 208 (60%)
Single 65 (12%) 15 (7.8%) 50 (15%)
Widowed 83 (15%) 35 (18%) 48 (14%)
Unknown 22 9 13
Histo.Behavior.ICD.O.3
80003 Neoplasm, malignant 1 (0.2%) 1 (0.5%) 0 (0%)
80103 Carcinoma, NOS 9 (1.7%) 7 (3.5%) 2 (0.6%)
80213 Carcinoma, anaplastic, NOS 1 (0.2%) 1 (0.5%) 0 (0%)
80463 Non-small cell carcinoma 3 (0.6%) 3 (1.5%) 0 (0%)
81403 Adenocarcinoma, NOS 451 (84%) 175 (88%) 276 (82%)
81443 Adenocarcinoma, intestinal type 1 (0.2%) 0 (0%) 1 (0.3%)
82443 Carcinoid and adenocarcinoma, combined 1 (0.2%) 0 (0%) 1 (0.3%)
82553 Adenocarcinoma with mixed subtypes 1 (0.2%) 0 (0%) 1 (0.3%)
84803 Mucinous adenocarcinoma 6 (1.1%) 4 (2.0%) 2 (0.6%)
84803 Mucinous carcinoma 2 (0.4%) 0 (0%) 2 (0.6%)
84803 Mucous adenocarcinoma 1 (0.2%) 0 (0%) 1 (0.3%)
85003 Duct adenocarcinoma, NOS 17 (3.2%) 4 (2.0%) 13 (3.9%)
85003 Ductal carcinoma, NOS 14 (2.6%) 0 (0%) 14 (4.2%)
85003 Infiltrating duct adenocarcinoma 9 (1.7%) 1 (0.5%) 8 (2.4%)
85003 Infiltrating duct carcinoma, NOS 11 (2.1%) 2 (1.0%) 9 (2.7%)
85213 Infiltrating ductular carcinoma 6 (1.1%) 0 (0%) 6 (1.8%)
85603 Adenosquamous carcinoma 1 (0.2%) 1 (0.5%) 0 (0%)
Unknown 24 3 21
AJCC.Clinical.Stage.Group
LocallyAdvanced 559 (100%) 202 (100%) 357 (100%)
Vital.Status <0.001
0 Dead 468 (84%) 197 (98%) 271 (76%)
1 Alive 91 (16%) 5 (2.5%) 86 (24%)
MonthDate 10.00 (5.00, 19.00) 9.00 (5.00, 15.00) 10.00 (4.00, 21.00) 0.62
Surgery 191 (34%) 41 (20%) 150 (42%) <0.001
X1st.Course.Chemotherapy.Summ 412 (75%) 162 (81%) 250 (71%) 0.011
Unknown 9 3 6
Radiation 255 (46%) 120 (59%) 135 (38%) <0.001

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

2 Statistical tests performed: Wilcoxon rank-sum test; chi-square test of independence; Fisher's exact test

SurvivalLocalData <-
  LocalDataSetDT %>%
  select(Age.at.Diagnosis, Sex, Race.1, Era, AJCC.Clinical.Stage.Group, Marital.Status.at.DX, Primary.Payer.at.DX, Vital.Status, MonthDate, Surgery, X1st.Course.Chemotherapy.Summ, Radiation)
SurvivalLocalData <- 
  SurvivalLocalData %>%
  mutate(SurvivalLocalData, Age = ifelse(Age.at.Diagnosis >= 85, "85+", 
                                               ifelse(Age.at.Diagnosis >= 75, "75-84", 
                                                      ifelse(Age.at.Diagnosis >= 65, "65-74", 
                                                             ifelse(Age.at.Diagnosis >=0, "0-65", NA)))))
ORLocalData <-
  SurvivalLocalData %>%
  select(Age, Sex, Race.1, Era, AJCC.Clinical.Stage.Group, Marital.Status.at.DX, Primary.Payer.at.DX, Vital.Status, MonthDate, Surgery, X1st.Course.Chemotherapy.Summ, Radiation)
#####Logistic Regression Ensure that Era is labeled as 1= Era2 and 0=Era1
ORLocalData$Era[ORLocalData$Era == "Era2"] <- 1


ORLocalData$Era[ORLocalData$Era == "Era1"] <- 0

table(ORLocalData$Era)
## 
##    0    1 
##  562 1010
#####Survival Analysis Ensure that vital status is labeled as 1= Alive and 2=Death
SurvivalLocalData$Vital.Status[SurvivalLocalData$Vital.Status == "0  Dead"] <- 2


SurvivalLocalData$Vital.Status[SurvivalLocalData$Vital.Status == "1  Alive"] <- 1
SurvivalLocalData$Vital.Status <- as.numeric(SurvivalLocalData$Vital.Status)
SurvivalLocalData$MonthDate <- as.numeric(SurvivalLocalData$MonthDate)
ORLocalData$Era <- as.numeric(ORLocalData$Era)
ORLocalDataStage4 <- 
  subset(ORLocalData, AJCC.Clinical.Stage.Group  == "Stage4")


ORLocalized <- 
  subset(ORLocalData, AJCC.Clinical.Stage.Group  == "LocallyAdvanced" | AJCC.Clinical.Stage.Group    == "EminentlyResectable")

ORLocallyAdvanced <- 
  subset(ORLocalData, AJCC.Clinical.Stage.Group  == "LocallyAdvanced")

OREminentlyResectable <- 
  subset(ORLocalData, AJCC.Clinical.Stage.Group  == "EminentlyResectable")

ORSurgery <- 
  subset(ORLocalData, Surgery    == "Yes")

ORSurgery$AJCC.Clinical.Stage.Group[ORSurgery$AJCC.Clinical.Stage.Group == "Stage4"] <- NA
SurvivalLocalDataStage4 <- 
  subset(SurvivalLocalData, AJCC.Clinical.Stage.Group    == "Stage4")


SurvivalLocalized <- 
  subset(SurvivalLocalData, AJCC.Clinical.Stage.Group    == "LocallyAdvanced" | AJCC.Clinical.Stage.Group    == "EminentlyResectable")

SurvivalLocallyAdvanced <- 
  subset(SurvivalLocalData, AJCC.Clinical.Stage.Group    == "LocallyAdvanced")

SurvivalEminentlyResectable <- 
  subset(SurvivalLocalData, AJCC.Clinical.Stage.Group    == "EminentlyResectable")

SurvivalSurgery <- 
  subset(SurvivalLocalData, Surgery  == "Yes")

SurvivalSurgery$AJCC.Clinical.Stage.Group[SurvivalSurgery$AJCC.Clinical.Stage.Group == "Stage4"] <- NA
UVEveryoneOR <- ORLocalData %>%
  select(Primary.Payer.at.DX, Marital.Status.at.DX, AJCC.Clinical.Stage.Group, Surgery, Radiation, Era) %>%
  tbl_uvregression(
    method = glm,
    y = Era,
    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 Everyone
MVOREveryoneOR <- 
  glm(Era ~ Primary.Payer.at.DX + AJCC.Clinical.Stage.Group + Surgery + Radiation, 
      data = ORLocalData,
      family = binomial("logit"), 
      na.action =na.omit)
###continue on to merge the table sets
MVORTableEveryoneOR <-
  tbl_regression(MVOREveryoneOR, exponentiate = T,
                 pvalue_fun = ~style_pvalue(.x, digits = 2),
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels() 
tbl_merge(
  list(UVEveryoneOR, MVORTableEveryoneOR),
  tab_spanner = c("All Patients, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels() 
Characteristic All Patients, Univariable Multivariable
N OR1 95% CI1 p-value OR1 95% CI1 p-value
Primary.Payer.at.DX 1,411
Insured
Medicaid 1.82 1.07, 3.25 0.033 2.70 1.31, 6.30 0.012
Uninsured 0.60 0.28, 1.33 0.20 0.70 0.29, 1.70 0.41
Marital.Status.at.DX 1,494
Divorced/Separated
Married 0.78 0.55, 1.10 0.16
Single 1.46 0.92, 2.34 0.11
Widowed 0.75 0.49, 1.14 0.18
AJCC.Clinical.Stage.Group 1,350
EminentlyResectable
LocallyAdvanced 0.40 0.28, 0.56 <0.001 0.43 0.29, 0.63 <0.001
Stage4 0.42 0.29, 0.58 <0.001 0.41 0.26, 0.61 <0.001
Surgery 1,572
No
Yes 2.02 1.60, 2.55 <0.001 2.78 2.00, 3.92 <0.001
Radiation 1,572
No
Yes 0.59 0.47, 0.74 <0.001 0.38 0.28, 0.51 <0.001

1 OR = Odds Ratio, CI = Confidence Interval

UVLocalizedOR <- ORLocalized %>%
  select(Primary.Payer.at.DX, Marital.Status.at.DX, AJCC.Clinical.Stage.Group, Surgery, Radiation, X1st.Course.Chemotherapy.Summ, Era) %>%
  tbl_uvregression(
    method = glm,
    y = Era,
    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 Localized
MVORLocalizedOR <- 
  glm(Era ~ Primary.Payer.at.DX + Marital.Status.at.DX + AJCC.Clinical.Stage.Group + X1st.Course.Chemotherapy.Summ + Surgery + Radiation, 
      data = ORLocalized,
      family = binomial("logit"), 
      na.action =na.omit)
###continue on to merge the table sets
MVORTableLocalizedOR <-
  tbl_regression(MVORLocalizedOR, exponentiate = T,
                 pvalue_fun = ~style_pvalue(.x, digits = 2),
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels() 
tbl_merge(
  list(UVLocalizedOR, MVORTableLocalizedOR),
  tab_spanner = c("Localized, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels() 
Characteristic Localized, Univariable Multivariable
N OR1 95% CI1 p-value OR1 95% CI1 p-value
Primary.Payer.at.DX 791
Insured
Medicaid 2.86 1.21, 8.41 0.030 2.08 0.81, 6.44 0.16
Uninsured 0.40 0.09, 1.69 0.19 0.31 0.06, 1.46 0.13
Marital.Status.at.DX 834
Divorced/Separated
Married 0.57 0.32, 0.98 0.049 0.52 0.25, 0.99 0.058
Single 1.29 0.62, 2.68 0.50 0.95 0.39, 2.26 0.91
Widowed 0.55 0.29, 1.01 0.059 0.49 0.22, 1.03 0.067
AJCC.Clinical.Stage.Group 868
EminentlyResectable
LocallyAdvanced 0.40 0.28, 0.56 <0.001 0.43 0.29, 0.64 <0.001
Surgery 868
No
Yes 2.78 2.03, 3.85 <0.001 2.85 1.95, 4.23 <0.001
Radiation 868
No
Yes 0.43 0.32, 0.58 <0.001 0.40 0.26, 0.60 <0.001
X1st.Course.Chemotherapy.Summ 857
No
Yes 0.68 0.48, 0.96 0.028 1.02 0.63, 1.65 0.94

1 OR = Odds Ratio, CI = Confidence Interval

UVEminentlyOR <- OREminentlyResectable %>%
  select(Age, Marital.Status.at.DX, Surgery, Radiation, Era) %>%
  tbl_uvregression(
    method = glm,
    y = Era,
    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 Eminentlyresectable
MVOREminentlyOR <- 
  glm(Era ~ Age + Surgery + Radiation, 
      data = OREminentlyResectable,
      family = binomial("logit"), 
      na.action =na.omit)
###continue on to merge the table sets
MVORTableEminentlyOR <-
  tbl_regression(MVOREminentlyOR, exponentiate = T,
                 pvalue_fun = ~style_pvalue(.x, digits = 2),
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels() 
tbl_merge(
  list(UVEminentlyOR, MVORTableEminentlyOR),
  tab_spanner = c("Eminently Resectable, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels() 
Characteristic Eminently Resectable, Univariable Multivariable
N OR1 95% CI1 p-value OR1 95% CI1 p-value
Age 309
0-65
65-74 1.11 0.53, 2.34 0.78 1.19 0.56, 2.55 0.65
75-84 0.83 0.39, 1.79 0.63 0.95 0.42, 2.15 0.89
85+ 0.49 0.19, 1.35 0.15 0.58 0.20, 1.72 0.31
Marital.Status.at.DX 297
Divorced/Separated
Married 0.26 0.04, 0.94 0.078
Single 0.83 0.10, 5.36 0.85
Widowed 0.29 0.04, 1.17 0.12
Surgery 309
No
Yes 1.75 0.98, 3.15 0.057 1.65 0.87, 3.16 0.13
Radiation 309
No
Yes 0.59 0.33, 1.05 0.072 0.52 0.29, 0.96 0.034

1 OR = Odds Ratio, CI = Confidence Interval

UVLocallyAdvancedOR <- ORLocallyAdvanced %>%
  select(Primary.Payer.at.DX, Marital.Status.at.DX, Surgery, X1st.Course.Chemotherapy.Summ, Radiation, Era) %>%
  tbl_uvregression(
    method = glm,
    y = Era,
    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 Locally Advanced
MVORLocallyAdvnacedOR <- 
  glm(Era ~ Primary.Payer.at.DX + Surgery + X1st.Course.Chemotherapy.Summ + Radiation, 
      data = ORLocallyAdvanced,
      family = binomial("logit"), 
      na.action =na.omit)
###continue on to merge the table sets
MVORTableLocallyAdvancedOR <-
  tbl_regression(MVORLocallyAdvnacedOR, exponentiate = T,
                 pvalue_fun = ~style_pvalue(.x, digits = 2),
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels() 
tbl_merge(
  list(UVLocallyAdvancedOR, MVORTableLocallyAdvancedOR),
  tab_spanner = c("Locally Advanced, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels() 
Characteristic Locally Advanced, Univariable Multivariable
N OR1 95% CI1 p-value OR1 95% CI1 p-value
Primary.Payer.at.DX 508
Insured
Medicaid 4.07 1.39, 17.4 0.024 3.80 1.23, 16.8 0.038
Uninsured 0.42 0.08, 1.91 0.26 0.31 0.06, 1.56 0.15
Marital.Status.at.DX 537
Divorced/Separated
Married 0.69 0.36, 1.27 0.24
Single 1.40 0.62, 3.22 0.42
Widowed 0.58 0.27, 1.18 0.14
Surgery 559
No
Yes 2.85 1.92, 4.29 <0.001 3.74 2.39, 6.00 <0.001
X1st.Course.Chemotherapy.Summ 550
No
Yes 0.57 0.37, 0.86 0.009 0.90 0.52, 1.54 0.70
Radiation 559
No
Yes 0.42 0.29, 0.59 <0.001 0.36 0.22, 0.57 <0.001

1 OR = Odds Ratio, CI = Confidence Interval

UVSurgeryOR <- ORSurgery %>%
  select(Primary.Payer.at.DX, Marital.Status.at.DX, AJCC.Clinical.Stage.Group, Radiation, Era) %>%
  tbl_uvregression(
    method = glm,
    y = Era,
    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 Surgery
MVORSurgeryOR <- 
  glm(Era ~ Primary.Payer.at.DX + AJCC.Clinical.Stage.Group + Radiation, 
      data = ORSurgery,
      family = binomial("logit"), 
      na.action =na.omit)
###continue on to merge the table sets
MVORTableSurgeryOR <-
  tbl_regression(MVORSurgeryOR, exponentiate = T,
                 pvalue_fun = ~style_pvalue(.x, digits = 2),
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels() 
tbl_merge(
  list(UVSurgeryOR, MVORTableSurgeryOR),
  tab_spanner = c("Surgery, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels() 
Characteristic Surgery, Univariable Multivariable
N OR1 95% CI1 p-value OR1 95% CI1 p-value
Primary.Payer.at.DX 469
Insured
Medicaid 0.97 0.44, 2.36 0.95 1.88 0.51, 12.1 0.41
Uninsured 0.20 0.03, 1.22 0.080 0.21 0.02, 1.90 0.14
Marital.Status.at.DX 491
Divorced/Separated
Married 0.82 0.41, 1.53 0.54
Single 1.64 0.69, 3.95 0.26
Widowed 1.24 0.50, 3.18 0.65
AJCC.Clinical.Stage.Group 367
EminentlyResectable
LocallyAdvanced 0.63 0.37, 1.08 0.10 0.68 0.36, 1.25 0.22
Radiation 515
No
Yes 0.53 0.35, 0.78 0.002 0.34 0.18, 0.63 <0.001

1 OR = Odds Ratio, CI = Confidence Interval

UVStage4OR <- ORLocalDataStage4 %>%
  select(Primary.Payer.at.DX, Radiation, Era) %>%
  tbl_uvregression(
    method = glm,
    y = Era,
    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 serious complications
MVORStage4OR <- 
  glm(Era ~ Primary.Payer.at.DX + Radiation, 
      data = ORLocalDataStage4,
      family = binomial("logit"), 
      na.action =na.omit)
###continue on to merge the table sets
MVORTableORStage4 <-
  tbl_regression(MVORStage4OR, exponentiate = T,
                 pvalue_fun = ~style_pvalue(.x, digits = 2),
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels() 
tbl_merge(
  list(UVStage4OR, MVORTableORStage4),
  tab_spanner = c("Stage 4, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels() 
Characteristic Stage 4, Univariable Multivariable
N OR1 95% CI1 p-value OR1 95% CI1 p-value
Primary.Payer.at.DX 427
Insured
Medicaid 2.91 0.96, 12.6 0.093 2.86 0.93, 12.5 0.10
Uninsured 0.77 0.27, 2.34 0.63 0.95 0.32, 3.01 0.93
Radiation 482
No
Yes 0.41 0.21, 0.80 0.009 0.34 0.17, 0.70 0.003

1 OR = Odds Ratio, CI = Confidence Interval

### Univariant Survival Neoadj
UVSurvEveryone <-
  SurvivalLocalData %>%
  select(Age, Sex, Race.1, Era, AJCC.Clinical.Stage.Group, Primary.Payer.at.DX, Marital.Status.at.DX, Vital.Status, MonthDate) %>%
  tbl_uvregression(
    method = coxph,
    y = Surv(MonthDate, Vital.Status),
    exponentiate = TRUE) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Multivariant survival Neoadj
MVSurvEveryone <- 
  coxph(Surv(MonthDate, Vital.Status) ~ Age + Primary.Payer.at.DX + Era + AJCC.Clinical.Stage.Group + Marital.Status.at.DX,
        data = SurvivalLocalData) %>%
  tbl_regression(exponentiate = T
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
  list(UVSurvEveryone, MVSurvEveryone),
  tab_spanner = c("Everyone,**Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic Everyone,Univariable Multivariable
N HR1 95% CI1 p-value HR1 95% CI1 p-value
Age 1,568
0-65
65-74 1.24 1.09, 1.43 0.002 1.35 1.14, 1.61 <0.001
75-84 1.71 1.48, 1.97 <0.001 1.87 1.55, 2.25 <0.001
85+ 2.90 2.35, 3.58 <0.001 2.96 2.25, 3.89 <0.001
Sex 1,568
1 Male
2 Female 1.03 0.92, 1.15 0.6
Race.1 1,568
Non-White
White 0.74 0.45, 1.21 0.2
Era 1,568
Era1
Era2 0.74 0.67, 0.83 <0.001 0.79 0.69, 0.91 <0.001
AJCC.Clinical.Stage.Group 1,348
EminentlyResectable
LocallyAdvanced 1.62 1.37, 1.91 <0.001 1.57 1.31, 1.87 <0.001
Stage4 3.59 3.02, 4.26 <0.001 3.92 3.25, 4.74 <0.001
Primary.Payer.at.DX 1,408
Insured
Medicaid 0.67 0.51, 0.88 0.004 0.99 0.72, 1.37 >0.9
Uninsured 1.55 1.02, 2.34 0.039 1.34 0.86, 2.10 0.2
Marital.Status.at.DX 1,492
Divorced/Separated
Married 0.91 0.76, 1.10 0.3 0.95 0.77, 1.17 0.6
Single 0.86 0.68, 1.09 0.2 0.97 0.74, 1.28 0.8
Widowed 1.40 1.12, 1.74 0.003 1.14 0.88, 1.48 0.3

1 HR = Hazard Ratio, CI = Confidence Interval

survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocalData)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocalData)
## 
##    8 observations deleted due to missingness 
##             n events median 0.95LCL 0.95UCL
## Era=Era1  562    536      8       7       9
## Era=Era2 1006    746     10       9      11
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocalData)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocalData)
## 
##    8 observations deleted due to missingness 
##             n events median 0.95LCL 0.95UCL
## Age=0-65  533    410     13      11      14
## Age=65-74 521    418     10       8      11
## Age=75-84 389    343      7       6       8
## Age=85+   125    111      3       2       4
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocalData)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocalData)
## 
##    8 observations deleted due to missingness 
##                 n events median 0.95LCL 0.95UCL
## Sex=1  Male   811    668      9       8      10
## Sex=2  Female 757    614      9       8      10
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocalData)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocalData)
## 
##    8 observations deleted due to missingness 
##                     n events median 0.95LCL 0.95UCL
## Race.1=Non-White   20     16    4.5       3      27
## Race.1=White     1548   1266    9.0       9      10
survfit(Surv(MonthDate, Vital.Status) ~ AJCC.Clinical.Stage.Group, data = SurvivalLocalData)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ AJCC.Clinical.Stage.Group, 
##     data = SurvivalLocalData)
## 
##    228 observations deleted due to missingness 
##                                                 n events median 0.95LCL 0.95UCL
## AJCC.Clinical.Stage.Group=EminentlyResectable 307    201     18      15      24
## AJCC.Clinical.Stage.Group=LocallyAdvanced     559    468     10       9      12
## AJCC.Clinical.Stage.Group=Stage4              482    440      4       3       5
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalLocalData)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, 
##     data = SurvivalLocalData)
## 
##    84 observations deleted due to missingness 
##                                           n events median 0.95LCL 0.95UCL
## Marital.Status.at.DX=Divorced/Separated 169    137      8       6      10
## Marital.Status.at.DX=Married            908    751     10       9      11
## Marital.Status.at.DX=Single             181    135     11       8      14
## Marital.Status.at.DX=Widowed            234    199      6       5       8
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalLocalData)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, 
##     data = SurvivalLocalData)
## 
##    168 observations deleted due to missingness 
##                                  n events median 0.95LCL 0.95UCL
## Primary.Payer.at.DX=Insured   1306   1065      9       8      10
## Primary.Payer.at.DX=Medicaid    76     55     13       8      26
## Primary.Payer.at.DX=Uninsured   26     23      3       2      13
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
               data = SurvivalLocalData)



ggsurvplot(fit, data = SurvivalLocalData, risk.table = TRUE)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

ggsurvplot(
   fit,                     # survfit object with calculated statistics.
   data = SurvivalLocalData,  # data used to fit survival curves. 
   risk.table = TRUE,       # show risk table.
   pval = TRUE,             # show p-value of log-rank test.
   conf.int = TRUE,         # show confidence intervals for 
                            # point estimaes of survival curves.
   xlim = c(0,200),        # present narrower X axis, but not affect
                            # survival estimates.
   break.time.by = 25,     # break X axis in time intervals by 500.
   ggtheme = theme_minimal(), # customize plot and risk table with a theme.
 risk.table.y.text.col = T, # colour risk table text annotations.
  risk.table.y.text = FALSE # show bars instead of names in text annotations
                            # in legend of risk table
)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

### Univariant Survival Neoadj

UVSurvStage4 <-
  SurvivalLocalDataStage4 %>%
  select(Age, Sex, Race.1, Era, Primary.Payer.at.DX, Marital.Status.at.DX, Vital.Status, MonthDate) %>%
  tbl_uvregression(
    method = coxph,
    y = Surv(MonthDate, Vital.Status),
    exponentiate = TRUE) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Multivariant survival Neoadj
MVSurvStage4 <- 
  coxph(Surv(MonthDate, Vital.Status) ~ Age + Sex + Primary.Payer.at.DX + Era,
        data = SurvivalLocalDataStage4) %>%
  tbl_regression(exponentiate = T
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
  list(UVSurvStage4, MVSurvStage4),
  tab_spanner = c("Stage4, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic Stage4, Univariable Multivariable
N HR1 95% CI1 p-value HR1 95% CI1 p-value
Age 482
0-65
65-74 1.36 1.08, 1.70 0.008 1.41 1.09, 1.83 0.009
75-84 1.64 1.27, 2.11 <0.001 1.88 1.41, 2.51 <0.001
85+ 3.29 2.22, 4.89 <0.001 3.50 2.28, 5.38 <0.001
Sex 482
1 Male
2 Female 1.02 0.84, 1.23 0.8 0.88 0.71, 1.08 0.2
Race.1 482
Non-White
White 0.46 0.20, 1.03 0.058
Era 482
Era1
Era2 0.87 0.72, 1.06 0.2 0.87 0.71, 1.08 0.2
Primary.Payer.at.DX 427
Insured
Medicaid 0.62 0.37, 1.03 0.066 0.88 0.52, 1.51 0.7
Uninsured 0.98 0.57, 1.67 >0.9 1.27 0.73, 2.22 0.4
Marital.Status.at.DX 454
Divorced/Separated
Married 0.93 0.70, 1.24 0.6
Single 0.93 0.63, 1.38 0.7
Widowed 1.42 0.99, 2.05 0.060

1 HR = Hazard Ratio, CI = Confidence Interval

survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocalDataStage4)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocalDataStage4)
## 
##            n events median 0.95LCL 0.95UCL
## Era=Era1 170    168      4       3       5
## Era=Era2 312    272      4       3       5
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocalDataStage4)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocalDataStage4)
## 
##             n events median 0.95LCL 0.95UCL
## Age=0-65  175    158      6       5       8
## Age=65-74 163    150      4       3       5
## Age=75-84 110    101      3       2       4
## Age=85+    34     31      2       1       3
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocalDataStage4)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocalDataStage4)
## 
##                 n events median 0.95LCL 0.95UCL
## Sex=1  Male   271    248      4       3       5
## Sex=2  Female 211    192      4       3       5
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocalData)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocalData)
## 
##    8 observations deleted due to missingness 
##                     n events median 0.95LCL 0.95UCL
## Race.1=Non-White   20     16    4.5       3      27
## Race.1=White     1548   1266    9.0       9      10
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalLocalDataStage4)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, 
##     data = SurvivalLocalDataStage4)
## 
##    28 observations deleted due to missingness 
##                                           n events median 0.95LCL 0.95UCL
## Marital.Status.at.DX=Divorced/Separated  65     56      3       2       5
## Marital.Status.at.DX=Married            275    252      5       4       6
## Marital.Status.at.DX=Single              51     48      3       2       7
## Marital.Status.at.DX=Widowed             63     60      2       2       3
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalLocalDataStage4)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, 
##     data = SurvivalLocalDataStage4)
## 
##    55 observations deleted due to missingness 
##                                 n events median 0.95LCL 0.95UCL
## Primary.Payer.at.DX=Insured   392    359      4       3       5
## Primary.Payer.at.DX=Medicaid   20     16      7       2      14
## Primary.Payer.at.DX=Uninsured  15     14      3       2      NA
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
               data = SurvivalLocalDataStage4)



ggsurvplot(fit, data = SurvivalLocalDataStage4, risk.table = TRUE)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

ggsurvplot(
   fit,                     # survfit object with calculated statistics.
   data = SurvivalLocalDataStage4,  # data used to fit survival curves. 
   risk.table = TRUE,       # show risk table.
   pval = TRUE,             # show p-value of log-rank test.
   conf.int = TRUE,         # show confidence intervals for 
                            # point estimaes of survival curves.
   xlim = c(0,200),        # present narrower X axis, but not affect
                            # survival estimates.
   break.time.by = 25,     # break X axis in time intervals by 500.
   ggtheme = theme_minimal(), # customize plot and risk table with a theme.
 risk.table.y.text.col = T, # colour risk table text annotations.
  risk.table.y.text = FALSE # show bars instead of names in text annotations
                            # in legend of risk table
)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

### Univariant Survival Neoadj
UVSurvLocalized <-
  SurvivalLocalized %>%
  select(Age, Sex, Race.1, Era, Primary.Payer.at.DX, Marital.Status.at.DX, Vital.Status, MonthDate) %>%
  tbl_uvregression(
    method = coxph,
    y = Surv(MonthDate, Vital.Status),
    exponentiate = TRUE) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Multivariant survival Neoadj
MVSurvLocalized <- 
  coxph(Surv(MonthDate, Vital.Status) ~ Age + Marital.Status.at.DX + Era,
        data = SurvivalLocalized) %>%
  tbl_regression(exponentiate = T
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
  list(UVSurvLocalized, MVSurvLocalized),
  tab_spanner = c("Localized, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic Localized, Univariable Multivariable
N HR1 95% CI1 p-value HR1 95% CI1 p-value
Age 866
0-65
65-74 1.27 1.05, 1.54 0.016 1.29 1.06, 1.58 0.012
75-84 1.91 1.57, 2.33 <0.001 1.86 1.51, 2.30 <0.001
85+ 3.00 2.24, 4.02 <0.001 2.51 1.80, 3.49 <0.001
Sex 866
1 Male
2 Female 1.02 0.87, 1.18 0.8
Race.1 866
Non-White
White 0.89 0.42, 1.88 0.8
Era 866
Era1
Era2 0.66 0.56, 0.77 <0.001 0.69 0.58, 0.81 <0.001
Primary.Payer.at.DX 789
Insured
Medicaid 0.77 0.54, 1.12 0.2
Uninsured 1.24 0.59, 2.61 0.6
Marital.Status.at.DX 833
Divorced/Separated
Married 1.00 0.77, 1.30 >0.9 0.86 0.66, 1.12 0.3
Single 0.84 0.60, 1.19 0.3 0.89 0.63, 1.26 0.5
Widowed 1.51 1.11, 2.06 0.009 1.00 0.72, 1.39 >0.9

1 HR = Hazard Ratio, CI = Confidence Interval

survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocalized)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocalized)
## 
##    2 observations deleted due to missingness 
##            n events median 0.95LCL 0.95UCL
## Era=Era1 259    249     10       9      11
## Era=Era2 607    420     15      13      16
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocalized)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocalized)
## 
##    2 observations deleted due to missingness 
##             n events median 0.95LCL 0.95UCL
## Age=0-65  283    198     17      15      21
## Age=65-74 286    214     14      12      16
## Age=75-84 229    198      9       8      10
## Age=85+    68     59      5       3       9
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocalized)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocalized)
## 
##    2 observations deleted due to missingness 
##                 n events median 0.95LCL 0.95UCL
## Sex=1  Male   426    337     13      11      15
## Sex=2  Female 440    332     12      10      14
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocalized)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocalized)
## 
##    2 observations deleted due to missingness 
##                    n events median 0.95LCL 0.95UCL
## Race.1=Non-White  10      7      9       5      NA
## Race.1=White     856    662     12      11      14
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalLocalized)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, 
##     data = SurvivalLocalized)
## 
##    35 observations deleted due to missingness 
##                                           n events median 0.95LCL 0.95UCL
## Marital.Status.at.DX=Divorced/Separated  84     64     13      10      19
## Marital.Status.at.DX=Married            508    401     14      12      15
## Marital.Status.at.DX=Single             103     67     17      13      21
## Marital.Status.at.DX=Widowed            138    111      9       7      10
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalLocalized)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, 
##     data = SurvivalLocalized)
## 
##    79 observations deleted due to missingness 
##                                 n events median 0.95LCL 0.95UCL
## Primary.Payer.at.DX=Insured   740    567   12.0      11      14
## Primary.Payer.at.DX=Medicaid   41     30   19.0      10      34
## Primary.Payer.at.DX=Uninsured   8      7   14.5       1      NA
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
               data = SurvivalLocalized)



ggsurvplot(fit, data = SurvivalLocalized, risk.table = TRUE)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

ggsurvplot(
   fit,                     # survfit object with calculated statistics.
   data = SurvivalLocalized,  # data used to fit survival curves. 
   risk.table = TRUE,       # show risk table.
   pval = TRUE,             # show p-value of log-rank test.
   conf.int = TRUE,         # show confidence intervals for 
                            # point estimaes of survival curves.
   xlim = c(0,150),        # present narrower X axis, but not affect
                            # survival estimates.
   break.time.by = 25,     # break X axis in time intervals by 500.
   ggtheme = theme_minimal(), # customize plot and risk table with a theme.
 risk.table.y.text.col = T, # colour risk table text annotations.
  risk.table.y.text = FALSE # show bars instead of names in text annotations
                            # in legend of risk table
)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

### Univariant Survival Neoadj
UVSurvLocallyAdvanced <-
  SurvivalLocallyAdvanced %>%
  select(Age, Sex, Race.1, Era, Primary.Payer.at.DX, Marital.Status.at.DX, Vital.Status, MonthDate) %>%
  tbl_uvregression(
    method = coxph,
    y = Surv(MonthDate, Vital.Status),
    exponentiate = TRUE) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Multivariant survival Neoadj
MVSurvLocallyAdvanced <- 
  coxph(Surv(MonthDate, Vital.Status) ~ Age + Marital.Status.at.DX + Era,
        data = SurvivalLocallyAdvanced) %>%
  tbl_regression(exponentiate = T
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
  list(UVSurvLocallyAdvanced, MVSurvLocallyAdvanced),
  tab_spanner = c("Locally Advanced, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic Locally Advanced, Univariable Multivariable
N HR1 95% CI1 p-value HR1 95% CI1 p-value
Age 559
0-65
65-74 1.18 0.94, 1.49 0.2 1.21 0.95, 1.53 0.12
75-84 1.69 1.34, 2.14 <0.001 1.59 1.23, 2.05 <0.001
85+ 3.01 2.10, 4.32 <0.001 2.33 1.57, 3.46 <0.001
Sex 559
1 Male
2 Female 1.10 0.92, 1.32 0.3
Race.1 559
Non-White
White 0.80 0.36, 1.80 0.6
Era 559
Era1
Era2 0.70 0.58, 0.84 <0.001 0.71 0.59, 0.86 <0.001
Primary.Payer.at.DX 508
Insured
Medicaid 0.74 0.47, 1.16 0.2
Uninsured 1.36 0.64, 2.87 0.4
Marital.Status.at.DX 537
Divorced/Separated
Married 0.92 0.67, 1.27 0.6 0.83 0.60, 1.15 0.3
Single 0.93 0.62, 1.40 0.7 0.98 0.64, 1.48 >0.9
Widowed 1.73 1.19, 2.53 0.004 1.22 0.81, 1.84 0.3

1 HR = Hazard Ratio, CI = Confidence Interval

survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocallyAdvanced)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocallyAdvanced)
## 
##            n events median 0.95LCL 0.95UCL
## Era=Era1 202    197     10       9      11
## Era=Era2 357    271     12      10      15
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocallyAdvanced)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocallyAdvanced)
## 
##             n events median 0.95LCL 0.95UCL
## Age=0-65  178    142     15      12      17
## Age=65-74 186    149     11       9      14
## Age=75-84 154    139      8       7      10
## Age=85+    41     38      3       2       9
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocallyAdvanced)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocallyAdvanced)
## 
##                 n events median 0.95LCL 0.95UCL
## Sex=1  Male   280    237     11      10      14
## Sex=2  Female 279    231     10       9      11
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocallyAdvanced)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocallyAdvanced)
## 
##                    n events median 0.95LCL 0.95UCL
## Race.1=Non-White   7      6      9       3      NA
## Race.1=White     552    462     10       9      12
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalLocallyAdvanced)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, 
##     data = SurvivalLocallyAdvanced)
## 
##    22 observations deleted due to missingness 
##                                           n events median 0.95LCL 0.95UCL
## Marital.Status.at.DX=Divorced/Separated  54     44     10       8      14
## Marital.Status.at.DX=Married            335    287     12      10      14
## Marital.Status.at.DX=Single              65     49     10       7      18
## Marital.Status.at.DX=Widowed             83     71      7       5       9
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalLocallyAdvanced)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, 
##     data = SurvivalLocallyAdvanced)
## 
##    51 observations deleted due to missingness 
##                                 n events median 0.95LCL 0.95UCL
## Primary.Payer.at.DX=Insured   476    396     10       9      12
## Primary.Payer.at.DX=Medicaid   25     20     13       6      45
## Primary.Payer.at.DX=Uninsured   7      7      9       1      NA
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
               data = SurvivalLocallyAdvanced)



ggsurvplot(fit, data = SurvivalLocallyAdvanced, risk.table = TRUE)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

ggsurvplot(
   fit,                     # survfit object with calculated statistics.
   data = SurvivalLocallyAdvanced,  # data used to fit survival curves. 
   risk.table = TRUE,       # show risk table.
   pval = TRUE,             # show p-value of log-rank test.
   conf.int = TRUE,         # show confidence intervals for 
                            # point estimaes of survival curves.
   xlim = c(0,150),        # present narrower X axis, but not affect
                            # survival estimates.
   break.time.by = 25,     # break X axis in time intervals by 500.
   ggtheme = theme_minimal(), # customize plot and risk table with a theme.
 risk.table.y.text.col = T, # colour risk table text annotations.
  risk.table.y.text = FALSE # show bars instead of names in text annotations
                            # in legend of risk table
)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

### Univariant Survival Neoadj
UVSurvEminentlyResectable <-
  SurvivalEminentlyResectable %>%
  select(Age, Sex, Race.1, Era, Primary.Payer.at.DX, Marital.Status.at.DX, Vital.Status, MonthDate) %>%
  tbl_uvregression(
    method = coxph,
    y = Surv(MonthDate, Vital.Status),
    exponentiate = TRUE) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
## Warning: Problem with `mutate()` input `model`.
## x Loglik converged before variable  2 ; coefficient may be infinite. 
## ℹ Input `model` is `map(...)`.
## Warning in fitter(X, Y, istrat, offset, init, control, weights = weights, :
## Loglik converged before variable 2 ; coefficient may be infinite.
###Multivariant survival Neoadj
MVSurvEminentlyResectable <- 
  coxph(Surv(MonthDate, Vital.Status) ~ Age + Marital.Status.at.DX + Era,
        data = SurvivalEminentlyResectable) %>%
  tbl_regression(exponentiate = T
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
  list(UVSurvEminentlyResectable, MVSurvEminentlyResectable),
  tab_spanner = c("Eminently Resectable, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic Eminently Resectable, Univariable Multivariable
N HR1 95% CI1 p-value HR1 95% CI1 p-value
Age 307
0-65
65-74 1.46 1.02, 2.09 0.038 1.53 1.05, 2.25 0.028
75-84 2.39 1.65, 3.44 <0.001 2.50 1.69, 3.72 <0.001
85+ 3.43 2.07, 5.70 <0.001 3.68 2.01, 6.75 <0.001
Sex 307
1 Male
2 Female 0.91 0.69, 1.20 0.5
Race.1 307
Non-White
White 1.71 0.24, 12.2 0.6
Era 307
Era1
Era2 0.72 0.52, 0.99 0.042 0.88 0.63, 1.23 0.4
Primary.Payer.at.DX 281
Insured
Medicaid 0.84 0.44, 1.60 0.6
Uninsured 0.00 0.00, Inf >0.9
Marital.Status.at.DX 296
Divorced/Separated
Married 1.09 0.68, 1.76 0.7 0.91 0.56, 1.47 0.7
Single 0.70 0.37, 1.32 0.3 0.76 0.40, 1.44 0.4
Widowed 1.43 0.83, 2.44 0.2 0.82 0.46, 1.48 0.5

1 HR = Hazard Ratio, CI = Confidence Interval

survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalEminentlyResectable)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalEminentlyResectable)
## 
##    2 observations deleted due to missingness 
##            n events median 0.95LCL 0.95UCL
## Era=Era1  57     52     15      11      24
## Era=Era2 250    149     19      16      26
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalEminentlyResectable)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalEminentlyResectable)
## 
##    2 observations deleted due to missingness 
##             n events median 0.95LCL 0.95UCL
## Age=0-65  105     56     29      23      51
## Age=65-74 100     65     22      15      29
## Age=75-84  75     59     10       9      15
## Age=85+    27     21      7       4      22
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalEminentlyResectable)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalEminentlyResectable)
## 
##    2 observations deleted due to missingness 
##                 n events median 0.95LCL 0.95UCL
## Sex=1  Male   146    100     16      12      25
## Sex=2  Female 161    101     19      15      29
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalEminentlyResectable)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalEminentlyResectable)
## 
##    2 observations deleted due to missingness 
##                    n events median 0.95LCL 0.95UCL
## Race.1=Non-White   3      1      8       8      NA
## Race.1=White     304    200     18      15      24
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalEminentlyResectable)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, 
##     data = SurvivalEminentlyResectable)
## 
##    13 observations deleted due to missingness 
##                                           n events median 0.95LCL 0.95UCL
## Marital.Status.at.DX=Divorced/Separated  30     20     22      12      NA
## Marital.Status.at.DX=Married            173    114     18      14      25
## Marital.Status.at.DX=Single              38     18     29      17      NA
## Marital.Status.at.DX=Widowed             55     40     12       9      22
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalEminentlyResectable)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, 
##     data = SurvivalEminentlyResectable)
## 
##    28 observations deleted due to missingness 
##                                 n events median 0.95LCL 0.95UCL
## Primary.Payer.at.DX=Insured   264    171     17      14      24
## Primary.Payer.at.DX=Medicaid   16     10     19      12      NA
## Primary.Payer.at.DX=Uninsured   1      0     NA      NA      NA
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
               data = SurvivalEminentlyResectable)



ggsurvplot(fit, data = SurvivalEminentlyResectable, risk.table = TRUE)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

ggsurvplot(
   fit,                     # survfit object with calculated statistics.
   data = SurvivalEminentlyResectable,  # data used to fit survival curves. 
   risk.table = TRUE,       # show risk table.
   pval = TRUE,             # show p-value of log-rank test.
   conf.int = TRUE,         # show confidence intervals for 
                            # point estimaes of survival curves.
   xlim = c(0,150),        # present narrower X axis, but not affect
                            # survival estimates.
   break.time.by = 25,     # break X axis in time intervals by 500.
   ggtheme = theme_minimal(), # customize plot and risk table with a theme.
 risk.table.y.text.col = T, # colour risk table text annotations.
  risk.table.y.text = FALSE # show bars instead of names in text annotations
                            # in legend of risk table
)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

### Univariant Survival Neoadj
UVSurvSurgery <-
  SurvivalSurgery %>%
  select(Age, Sex, Race.1, Era, AJCC.Clinical.Stage.Group, Primary.Payer.at.DX, Marital.Status.at.DX, Vital.Status, MonthDate) %>%
  tbl_uvregression(
    method = coxph,
    y = Surv(MonthDate, Vital.Status),
    exponentiate = TRUE) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Multivariant survival Neoadj
MVSurvSurgery <- 
  coxph(Surv(MonthDate, Vital.Status) ~ Age + Sex + AJCC.Clinical.Stage.Group + Primary.Payer.at.DX + Era,
        data = SurvivalSurgery) %>%
  tbl_regression(exponentiate = T
  ) %>%
  bold_p(t = 0.10) %>%
  bold_labels() %>%
  italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
  list(UVSurvSurgery, MVSurvSurgery),
  tab_spanner = c("Surgery, **Univariable**", "**Multivariable**")
) %>%
  bold_labels() %>%
  italicize_levels()
Characteristic Surgery, Univariable Multivariable
N HR1 95% CI1 p-value HR1 95% CI1 p-value
Age 514
0-65
65-74 1.26 0.99, 1.60 0.066 1.08 0.78, 1.50 0.6
75-84 1.58 1.19, 2.09 0.001 1.39 0.96, 2.01 0.077
85+ 2.04 0.65, 6.40 0.2 1.66 0.40, 6.86 0.5
Sex 514
1 Male
2 Female 1.23 0.99, 1.52 0.062 1.08 0.82, 1.43 0.6
Race.1 514
Non-White
White 0.60 0.28, 1.27 0.2
Era 514
Era1
Era2 0.81 0.64, 1.02 0.075 0.76 0.55, 1.05 0.10
AJCC.Clinical.Stage.Group 366
EminentlyResectable
LocallyAdvanced 1.41 1.08, 1.83 0.010 1.37 1.04, 1.81 0.026
Primary.Payer.at.DX 468
Insured
Medicaid 0.60 0.38, 0.96 0.034 0.77 0.43, 1.40 0.4
Uninsured 1.19 0.44, 3.19 0.7 1.04 0.32, 3.31 >0.9
Marital.Status.at.DX 491
Divorced/Separated
Married 0.96 0.68, 1.35 0.8
Single 0.82 0.53, 1.27 0.4
Widowed 1.36 0.86, 2.14 0.2

1 HR = Hazard Ratio, CI = Confidence Interval

survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalSurgery)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalSurgery)
## 
##    1 observation deleted due to missingness 
##            n events median 0.95LCL 0.95UCL
## Era=Era1 131    114     21      16      26
## Era=Era2 383    228     26      21      30
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalSurgery)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalSurgery)
## 
##    1 observation deleted due to missingness 
##             n events median 0.95LCL 0.95UCL
## Age=0-65  228    137     28      24      35
## Age=65-74 187    126     24      19      28
## Age=75-84  94     76     16      13      22
## Age=85+     5      3      9       4      NA
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalSurgery)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalSurgery)
## 
##    1 observation deleted due to missingness 
##                 n events median 0.95LCL 0.95UCL
## Sex=1  Male   270    177     26      23      30
## Sex=2  Female 244    165     20      18      26
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalSurgery)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalSurgery)
## 
##    1 observation deleted due to missingness 
##                    n events median 0.95LCL 0.95UCL
## Race.1=Non-White  11      7     13       8      NA
## Race.1=White     503    335     24      21      27
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalSurgery)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, 
##     data = SurvivalSurgery)
## 
##    24 observations deleted due to missingness 
##                                           n events median 0.95LCL 0.95UCL
## Marital.Status.at.DX=Divorced/Separated  58     40     21      14      35
## Marital.Status.at.DX=Married            310    214     24      20      27
## Marital.Status.at.DX=Single              74     39     29      21      38
## Marital.Status.at.DX=Widowed             49     35     16      12      32
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalSurgery)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, 
##     data = SurvivalSurgery)
## 
##    47 observations deleted due to missingness 
##                                 n events median 0.95LCL 0.95UCL
## Primary.Payer.at.DX=Insured   429    288     22      19      27
## Primary.Payer.at.DX=Medicaid   34     19     32      26      NA
## Primary.Payer.at.DX=Uninsured   5      4     25      20      NA
survfit(Surv(MonthDate, Vital.Status) ~ AJCC.Clinical.Stage.Group   , data = SurvivalSurgery)
## Call: survfit(formula = Surv(MonthDate, Vital.Status) ~ AJCC.Clinical.Stage.Group, 
##     data = SurvivalSurgery)
## 
##    149 observations deleted due to missingness 
##                                                 n events median 0.95LCL 0.95UCL
## AJCC.Clinical.Stage.Group=EminentlyResectable 175     98     31      26      38
## AJCC.Clinical.Stage.Group=LocallyAdvanced     191    136     21      18      28
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
               data = SurvivalSurgery)



ggsurvplot(fit, data = SurvivalSurgery, risk.table = TRUE)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.

ggsurvplot(
   fit,                     # survfit object with calculated statistics.
   data = SurvivalSurgery,  # data used to fit survival curves. 
   risk.table = TRUE,       # show risk table.
   pval = TRUE,             # show p-value of log-rank test.
   conf.int = TRUE,         # show confidence intervals for 
                            # point estimaes of survival curves.
   xlim = c(0,200),        # present narrower X axis, but not affect
                            # survival estimates.
   break.time.by = 25,     # break X axis in time intervals by 500.
   ggtheme = theme_minimal(), # customize plot and risk table with a theme.
 risk.table.y.text.col = T, # colour risk table text annotations.
  risk.table.y.text = FALSE # show bars instead of names in text annotations
                            # in legend of risk table
)
## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.