Recently Published
Textbook Outcomes with LOS
---
title: "Textbook Outcomes Code"
author: "Abdimajid Mohamed"
date: "11/15/2022"
output: html_document
---
```{r}
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(VIM)
library(tibble)
library(ggplot2)
library(OddsPlotty)
library(e1071)
library(ggthemes)
library(mlbench)
library(caret)
```
```{r}
load("TextbookOutcomes.RData")
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, Age = ifelse(Age >= 85, "85+",
ifelse(Age >= 75, "75-84",
ifelse(Age >= 65, "65-74",
ifelse(Age >=0, "0-65", NA)))))
```
```{r}
### Recoding mortality
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == -99] <- "No"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 0] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 1] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 2] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 3] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 4] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 5] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 6] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 7] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 8] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 9] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 10] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 11] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 12] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 13] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 14] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 15] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 16] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 17] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 18] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 19] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 20] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 21] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 22] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 23] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 24] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 25] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 26] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 27] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 28] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 29] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 30] <- "Yes"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "EXCISION AMPULLA VATER"] <- NA
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "EXCISION LESION PANCREAS"] <- NA
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "UNLISTED PROCEDURE PANCREAS"] <- NA
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT WHIPPLE W/O PANCREATOJEJUNOSTOMY"] <- "Whipple"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT W/PANCREATOJEJUNOSTOMY"] <- "Whipple"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT DSTL STOT W/PNCRTCOJEJUNOSTOMY"] <- "Distal Pancreatectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT DSTL STOT W/O PNCRTCOJEJUNOSTOMY"] <- "Distal Pancreatectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT PROX STOT W/PANCREATOJEJUNOSTOMY"] <- "Whipple"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT PROX STOT W/O PANCREATOJEJUNOSTOMY"] <- "Whipple"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PANCREATECTOMY TOTAL"] <- "Total Pancreatectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT DSTL NR-TOT W/PRSRV DUO CHLD-TYP PX"] <- "Total Pancreatectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "HEPATECTOMY RESCJ PARTIAL LOBECTOMY"] <- "Partial Lobectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "HEPATECTOMY RESCJ TOTAL LEFT LOBECTOMY"] <- "Lobectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "HEPATECTOMY RESCJ TOTAL RIGHT LOBECTOMY"] <- "Lobectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "HEPATECTOMY RESCJ TRISEGMENTECTOMY"] <- "Trisegmentectomy"
```
```{r}
table(TextbookOutcomes$PRNCPTX)
```
```{r}
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, PatientGroup = ifelse(PRNCPTX == "Partial Lobectomy", "Liver",
ifelse(PRNCPTX == "Lobectomy", "Liver",
ifelse(PRNCPTX == "Trisegmentectomy", "Liver",
ifelse(PRNCPTX == "Whipple", "Pancreas",
ifelse(PRNCPTX == "Distal Pancreatectomy", "Pancreas",
ifelse(PRNCPTX == "Total Pancreatectomy", "Pancreas", NA)))))))
```
```{r}
### Recoding readmission
TextbookOutcomes$READMISSION1[TextbookOutcomes$READMISSION1 == "NULL"] <- NA
TextbookOutcomes$READMISSION1[TextbookOutcomes$READMISSION1 == "NULL"] <- NA
```
```{r}
table(TextbookOutcomes$READMISSION1)
```
```{r}
TextbookOutcomes$DOptoDis[TextbookOutcomes$DOptoDis == -99] <- NA
```
```{r}
table(TextbookOutcomes$PRNCPTX)
```
```{r}
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "American Indian or Alaska Native"] <- "Other"
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "Asian"] <- "Other"
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "Native Hawaiian or Pacific Islander"] <- "Other"
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "Black or African American"] <- "Black"
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "Unknown/Not Reported"] <- NA
TextbookOutcomes$WEIGHT[TextbookOutcomes$WEIGHT ==-99] <- NA
TextbookOutcomes$HEIGHT[TextbookOutcomes$HEIGHT ==-99] <- NA
TextbookOutcomes$BMI <- (TextbookOutcomes$WEIGHT / TextbookOutcomes$HEIGHT / TextbookOutcomes$HEIGHT) *703
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, BMILabled = ifelse(BMI >= 40, "Morbidly Obese",
ifelse(BMI >= 30, "Obese",
ifelse(BMI >= 25, "Overweight",
ifelse(BMI >=18.5, "Normal Weight",
ifelse(BMI <= 18.49, "Underweight", NA))))))
```
```{r}
TextbookOutcomes$ASACLAS[TextbookOutcomes$ASACLAS == "5-Moribund"] <- NA
TextbookOutcomes$ASACLAS[TextbookOutcomes$ASACLAS == "None assigned"] <- NA
```
```{r}
### Create MFI column
TextbookOutcomes$DIABETES[TextbookOutcomes$DIABETES == "INSULIN"] <- "Yes"
TextbookOutcomes$DIABETES[TextbookOutcomes$DIABETES == "NON-INSULIN"] <- "Yes"
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
##Diabeties recoded for MFI
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, Diabetes1 = ifelse(DIABETES == "INSULIN", "Yes",
ifelse(DIABETES == "NON-INSULIN", "Yes",
ifelse(DIABETES == "NO", "No", "NA"))))
```
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2 ###CHF recoded for MFI
TextbookOutcomes <- TextbookOutcomes %>% mutate(TextbookOutcomes, CHFMFI = ifelse(HXCHF == “Yes”, “1”, ifelse(HXCHF == “No”, “0”, “NA”)))
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2 ### COPD recoded for MFI
TextbookOutcomes <- TextbookOutcomes %>% mutate(TextbookOutcomes, COPDMFI = ifelse(HXCOPD == “Yes”, “1”, ifelse(HXCOPD == “No”, “0”, “NA”)))
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2 ### Hypertension with medications recoded for MFI
TextbookOutcomes <- TextbookOutcomes %>% mutate(TextbookOutcomes, HYPERMEDMFI = ifelse(HYPERMED == “Yes”, “1”, ifelse(HYPERMED == “No”, “0”, “NA”)))
```{r}
##recode fnstatus2
TextbookOutcomes$FNSTATUS2[TextbookOutcomes$FNSTATUS2 == "Unknown"] <- NA
```
TextbookOutcomes <- TextbookOutcomes %>% mutate(TextbookOutcomes, FuncStatus = ifelse(FNSTATUS2 == “Yes”, “1”, ifelse(FNSTATUS2 == “No”, “0”, NA)))
##making the columns numeric to add them properly
TextbookOutcomesHYPERMEDMFI<−as.numeric(TextbookOutcomesHYPERMEDMFI) TextbookOutcomesCOPDMFI<−as.numeric(TextbookOutcomesCOPDMFI) TextbookOutcomesCHFMFI<−as.numeric(TextbookOutcomesCHFMFI) TextbookOutcomesDiabetesMFI<−as.numeric(TextbookOutcomesDiabetesMFI) TextbookOutcomesFuncStatus<−as.numeric(TextbookOutcomesFuncStatus)
###Creating MFI column
TextbookOutcomesMFI5<−(TextbookOutcomesHYPERMEDMFI + TextbookOutcomesCOPDMFI+TextbookOutcomesCHFMFI + TextbookOutcomesDiabetesMFI+TextbookOutcomesFuncStatus )
```{r}
##recoding Hep and Pan targeted Complications to yes or no (will need to add in targeted complications Pan: Fistula, Delayed Gastric Emptying and what about percdrain? | Hep: Bile leakage, hepliverfail)
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Biochemical Leak only"] <- "No"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes, Grade B POPF present"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes, Grade C POPF present"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Unknown"] <- NA
####Delayed Gastric Emptying Recode to yes or no
TextbookOutcomes$PAN_DELGASTRIC_20140315[TextbookOutcomes$PAN_DELGASTRIC_20140315 =="Yes-no oral intake by POD 14"] <- "Yes"
TextbookOutcomes$PAN_DELGASTRIC_20140315[TextbookOutcomes$PAN_DELGASTRIC_20140315 =="Yes-tube to external drainage/NG tube present/reinserted"] <- "Yes"
TextbookOutcomes$PAN_DELGASTRIC_20140315[TextbookOutcomes$PAN_DELGASTRIC_20140315 =="Unknown"] <- NA
###recoding Hep targeted complications bileleakage
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Unknown"] <- NA
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-clinical diagnosis, drain continued on or after POD3"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-clinical diagnosis, reoperation performed"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-persistent drainage, drain continued on or after POD3"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-persistent drainage, percutaneous drainage performed"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-persistent drainage, reoperation performed"] <- "Yes"
##recoding hep targeted complications Liver failure (Post Hepatectomy Liver Failure)
TextbookOutcomes$HEP_LIVERFAIL[TextbookOutcomes$HEP_LIVERFAIL =="Yes-PHLF (receiving clotting factors to maintain INR)"] <- "Yes"
TextbookOutcomes$HEP_LIVERFAIL[TextbookOutcomes$HEP_LIVERFAIL =="Yes-meets criteria for PHLF"] <- "Yes"
TextbookOutcomes$HEP_LIVERFAIL[TextbookOutcomes$HEP_LIVERFAIL =="No-does not meet criteria for PHLF"] <- "No"
table(TextbookOutcomes$HEP_LIVERFAIL)
```
```{r}
table(TextbookOutcomes$PRNCPTX)
```
```{r}
###Creating Targeted Column for Hep Complications
TextbookOutcomes1 <- TextbookOutcomes %>%
mutate(TextbookOutcomes, HepComplications = ifelse(HEP_LIVERFAIL == "Yes", "Yes",
ifelse(HEP_BILELEAKAGE == "Yes", "Yes", "No")))
```
```{r}
table(TextbookOutcomes1$HepComplications)
```
```{r}
TextbookOutcomes2 <- TextbookOutcomes1 %>%
mutate(TextbookOutcomes, PanComplications = ifelse(PAN_FISTULA == "Yes", "Yes",
ifelse(PAN_DELGASTRIC_20140315 == "Yes", "Yes", "No")))
```
```{r}
str(TextbookOutcomes2$PanComplications)
```
```{r}
sum(is.na(TextbookOutcomes2$PanComplications))
```
```{r}
###creating a true textbookoutcomes column for pan and liver
TextbookOutcomes2$PanComplications[TextbookOutcomes2$PanComplications ==NA] <- "NA"
TextbookOutcomes2$PanComplications[TextbookOutcomes2$HepComplications ==NA] <- "NA"
table(TextbookOutcomes2$PanComplications)
```
```{r}
TextbookOutcomes2$PanComplications[TextbookOutcomes2$PanComplications ==NA] <- "NA"
sum(is.na(TextbookOutcomes2$PanComplications))
```
```{r}
table(is.na(TextbookOutcomes2$PanComplications))
```
```{r}
### Ifelse function to create new column for any complication (will need to add in targeted complications Pan: Fistula, Delayed Gastric Emptying | Hep: Bile leakage, hepliverfail)
TextbookOutcomes3 <- TextbookOutcomes2 %>%
mutate(TextbookOutcomes, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
```
```{r}
##subsetting Procedure with DoptoDIS information to obtain the mean
TextbookOutcomesDistalPan <-
subset(TextbookOutcomes, PRNCPTX == "Distal Pancreatectomy")
TextbookOutcomesLobectomy <-
subset(TextbookOutcomes, PRNCPTX == "Lobectomy")
TextbookOutcomesOtherPan <-
subset(TextbookOutcomes, PRNCPTX == "Other Pancreas")
TextbookOutcomesPartialLobectomy <-
subset(TextbookOutcomes, PRNCPTX == "Partial Lobectomy")
TextbookOutcomesTotalPan <-
subset(TextbookOutcomes, PRNCPTX == "Total Pancreatectomy")
TextbookOutcomesTrisegmentectomy <-
subset(TextbookOutcomes, PRNCPTX == "Trisegmentectomy")
TextbookOutcomesWhipple <-
subset(TextbookOutcomes, PRNCPTX == "Whipple")
```
```{r}
###obtaining the 75th percential for LOS defined as day of surgery to date of discharge
SeventyFifthPercentileDistalPan = TextbookOutcomesDistalPan$DOptoDis
SeventyFifthPercentileLobectomy = TextbookOutcomesLobectomy$DOptoDis
SeventyFifthPercentileOtherPan = TextbookOutcomesOtherPan$DOptoDis
SeventyFifthPercentilePartialLobectomy = TextbookOutcomesPartialLobectomy$DOptoDis
SeventyFifthPercentileTotalPan = TextbookOutcomesTotalPan$DOptoDis
SeventyFifthPercentileTrisegmentectomy = TextbookOutcomesTrisegmentectomy$DOptoDis
SeventyFifthPercentileWhipple = TextbookOutcomesWhipple$DOptoDis
```
```{r}
quantile(SeventyFifthPercentileDistalPan, na.rm = T)
```
```{r}
quantile(SeventyFifthPercentileLobectomy, na.rm = T)
```
```{r}
quantile(SeventyFifthPercentileOtherPan, na.rm = T)
```
```{r}
quantile(SeventyFifthPercentilePartialLobectomy, na.rm = T)
```
```{r}
quantile(SeventyFifthPercentileTotalPan, na.rm = T)
```
```{r}
quantile(SeventyFifthPercentileTrisegmentectomy, na.rm = T)
```
```{r}
quantile(SeventyFifthPercentileWhipple, na.rm = T)
```
```{r}
TextbookOutcomes3$ELOSDistalPan <- ifelse(TextbookOutcomes3$PRNCPTX == "Distal Pancreatectomy" & TextbookOutcomes3$DOptoDis >= 7, "Yes", "No")
TextbookOutcomes3$ELOSLobectomy <- ifelse(TextbookOutcomes3$PRNCPTX == "Lobectomy" & TextbookOutcomes3$DOptoDis >= 8, "Yes", "No")
TextbookOutcomes3$ELOSOtherPan <- ifelse(TextbookOutcomes3$PRNCPTX == "Other Pancreas" & TextbookOutcomes3$DOptoDis >= 7, "Yes", "No")
TextbookOutcomes3$ELOSPartial <- ifelse(TextbookOutcomes3$PRNCPTX == "Partial Lobectomy" & TextbookOutcomes3$DOptoDis >= 6, "Yes", "No")
TextbookOutcomes3$ELOSTotal <- ifelse(TextbookOutcomes3$PRNCPTX == "Total Pancreatectomy" & TextbookOutcomes3$DOptoDis >= 12, "Yes", "No")
TextbookOutcomes3$ELOSTrisegmentectomy <- ifelse(TextbookOutcomes3$PRNCPTX == "Trisegmentectomy" & TextbookOutcomes3$DOptoDis >= 10, "Yes", "No")
TextbookOutcomes3$ELOSWhipple <- ifelse(TextbookOutcomes3$PRNCPTX == "Whipple" & TextbookOutcomes3$DOptoDis >= 12, "Yes", "No")
table(TextbookOutcomes3$ELOSPartial)
```
```{r}
###recode 9 and up to be considered increased LOS
PanTextbookOutcomes <- TextbookOutcomes3 %>%
mutate(TextbookOutcomes3, ELOS = ifelse(ELOSDistalPan == "Yes", "Yes",
ifelse(ELOSLobectomy == "Yes", "Yes",
ifelse(ELOSOtherPan == "Yes", "Yes",
ifelse(ELOSPartial == "Yes", "Yes",
ifelse(ELOSTotal == "Yes", "Yes",
ifelse(ELOSTrisegmentectomy == "Yes", "Yes",
ifelse(ELOSWhipple == "Yes", "Yes", "No"))))))))
table(PanTextbookOutcomes$ELOS)
```
###subset pancreatic cancer patients prior to creating a Textbook Outcomes Table double the 75th percentile number afterwards
PanTextbookOutcomes <- subset(TextbookOutcomes4, PanComplications == “Yes” | PanComplications == “No”)
table(PanTextbookOutcomes$HepComplications)
```{r}
PanTextbookOutcomes$TextbookOutcomeHep <- ifelse(PanTextbookOutcomes$ELOS == "No" & PanTextbookOutcomes$DOpertoD == "No" & PanTextbookOutcomes$HepComplications == "No" & PanTextbookOutcomes$AnyComplication == "No" & PanTextbookOutcomes$READMISSION1 == "No",
"Yes",
"No")
PanTextbookOutcomes$TextbookOutcomePan <- ifelse(PanTextbookOutcomes$ELOS == "No" & PanTextbookOutcomes$DOpertoD == "No" & PanTextbookOutcomes$PanComplications == "No" & PanTextbookOutcomes$AnyComplication == "No" & PanTextbookOutcomes$READMISSION1 == "No",
"Yes",
"No")
PanTextbookOutcomes$TextbookOutcomeAll <- ifelse(PanTextbookOutcomes$TextbookOutcomePan == "No" & PanTextbookOutcomes$TextbookOutcomeHep == "No",
"No",
"Yes")
table(PanTextbookOutcomes$TextbookOutcomeHep)
```
```{r}
table(PanTextbookOutcomes$TextbookOutcomePan)
```
```{r}
table(PanTextbookOutcomes$TextbookOutcomeAll)
```
PanTextbookOutcomes3 <- PanTextbookOutcomes %>% mutate(PanTextbookOutcomes, TextbookOutcomeAll = ifelse(TextbookOutcomePan == NA, “Yes”, ifelse(TextbookOutcomeHep == “Yes”, “Yes”,“NA”)))
table(PanTextbookOutcomes3$TextbookOutcomeAll)
PanTextbookOutcomes1 <- PanTextbookOutcomes %>% mutate(PanTextbookOutcomes, ModifiedFrailtyIndex5 = ifelse(MFI5 == 0, “0”, ifelse(MFI5 == 1, “1”, ifelse(MFI5 > 2, “>2”, NA))))
```{r}
PantextBookOutcomesDT <-
PanTextbookOutcomes %>%
select(PRNCPTX, PatientGroup, Age, SEX, RACE_NEW, BMILabled, ASACLAS, DOpertoD, OPTIME, ELOS, READMISSION1, STEROID, DIABETES, HYPERMED, ASACLAS, ASCITES, HXCHF, DYSPNEA, SMOKE, HXCOPD, DIALYSIS, OPRENAFL, FNSTATUS2, AnyComplication, TextbookOutcomeHep, TextbookOutcomePan, TextbookOutcomeAll, PanComplications, HepComplications)
table(PantextBookOutcomesDT$PatientGroup)
```
```{r}
LOSTable <-
PanTextbookOutcomes %>%
select(PRNCPTX, DOptoDis)
```
```{r}
LOSTable %>%
tbl_summary(
by = PRNCPTX,
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") ~ "**Textbook Outcomes*") %>%
bold_labels()
```
```{r}
PantextBookOutcomesDT %>%
tbl_summary(
by = PatientGroup,
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") ~ "**Textbook Outcomes*") %>%
bold_labels()
```
```{r}
TextbookOutcomeOR <-
PantextBookOutcomesDT %>%
select(PRNCPTX, PatientGroup, Age, SEX, RACE_NEW, BMILabled, ASACLAS, DOpertoD, OPTIME, ELOS, READMISSION1, STEROID, DIABETES, HYPERMED, ASACLAS, ASCITES, HXCHF, DYSPNEA, SMOKE, HXCOPD, DIALYSIS, OPRENAFL, FNSTATUS2, AnyComplication, TextbookOutcomeHep, TextbookOutcomePan, TextbookOutcomeAll, PanComplications, HepComplications)
```
```{r}
TextbookOutcomeOR <- TextbookOutcomeOR %>%
mutate(TextbookOutcomeOR, TextbookOutcomePanOR = ifelse(TextbookOutcomePan =="Yes", "1",
ifelse(TextbookOutcomePan =="No", "0", NA)))
TextbookOutcomeOR$TextbookOutcomePanOR <- as.numeric(TextbookOutcomeOR$TextbookOutcomePanOR)
TextbookOutcomeOR <- TextbookOutcomeOR %>%
mutate(TextbookOutcomeOR, TextbookOutcomeHepOR = ifelse(TextbookOutcomeHep =="Yes", "1",
ifelse(TextbookOutcomeHep =="No", "0", NA)))
TextbookOutcomeOR <- TextbookOutcomeOR %>%
mutate(TextbookOutcomeOR, TextbookOutcomeAllOR = ifelse(TextbookOutcomeAll =="Yes", "1",
ifelse(TextbookOutcomeAll =="No", "0", NA)))
TextbookOutcomeOR$TextbookOutcomeHepOR <- as.numeric(TextbookOutcomeOR$TextbookOutcomeHepOR)
TextbookOutcomeOR$TextbookOutcomeAllOR <- as.numeric(TextbookOutcomeOR$TextbookOutcomeAllOR)
TextbookOutcomeOR$TextbookOutcomePanOR <- as.numeric(TextbookOutcomeOR$TextbookOutcomePanOR)
```
```{r}
PanTextbookOutcomesSubset <-
subset(TextbookOutcomeOR, PatientGroup == "Pancreas")
```
```{r}
HepTextbookOutcomesSubset <-
subset(TextbookOutcomeOR, PatientGroup == "Liver")
table(PanTextbookOutcomesSubset$TextbookOutcomePanOR)
```
```{r}
PanTextbookOutcomesSubset$PRNCPTX <- as.factor(PanTextbookOutcomesSubset$PRNCPTX)
PanTextbookOutcomesSubset$SEX <- as.factor(PanTextbookOutcomesSubset$SEX)
PanTextbookOutcomesSubset$ASACLAS <- as.factor(PanTextbookOutcomesSubset$ASACLAS)
PanTextbookOutcomesSubset$BMILabled <- as.factor(PanTextbookOutcomesSubset$BMILabled)
PanTextbookOutcomesSubset$STEROID <- as.factor(PanTextbookOutcomesSubset$STEROID)
PanTextbookOutcomesSubset$DIABETES <- as.factor(PanTextbookOutcomesSubset$DIABETES)
PanTextbookOutcomesSubset$HYPERMED <- as.factor(PanTextbookOutcomesSubset$HYPERMED)
PanTextbookOutcomesSubset$ASCITES <- as.factor(PanTextbookOutcomesSubset$ASCITES)
PanTextbookOutcomesSubset$HXCOPD <- as.factor(PanTextbookOutcomesSubset$HXCOPD)
PanTextbookOutcomesSubset$DIALYSIS <- as.factor(PanTextbookOutcomesSubset$DIALYSIS)
PanTextbookOutcomesSubset$HXCHF <- as.factor(PanTextbookOutcomesSubset$HXCHF)
PanTextbookOutcomesSubset$Age <- as.factor(PanTextbookOutcomesSubset$Age)
PanTextbookOutcomesSubset$FNSTATUS2 <- as.factor(PanTextbookOutcomesSubset$FNSTATUS2)
PanTextbookOutcomesSubset$SMOKE <- as.factor(PanTextbookOutcomesSubset$SMOKE)
PanTextbookOutcomesSubset$PatientGroup <- as.factor(PanTextbookOutcomesSubset$PatientGroup)
PanTextbookOutcomesSubset$PRNCPTX = relevel(PanTextbookOutcomesSubset$PRNCPTX, ref="Distal Pancreatectomy")
PanTextbookOutcomesSubset$SEX = relevel(PanTextbookOutcomesSubset$SEX, ref="male")
PanTextbookOutcomesSubset$BMILabled = relevel(PanTextbookOutcomesSubset$BMILabled, ref="Overweight")
PanTextbookOutcomesSubset$ASACLAS = relevel(PanTextbookOutcomesSubset$ASACLAS, ref="4-Life Threat")
PanTextbookOutcomesSubset$DIABETES = relevel(PanTextbookOutcomesSubset$DIABETES, ref="NO")
PanTextbookOutcomesSubset$HYPERMED = relevel(PanTextbookOutcomesSubset$HYPERMED, ref="Yes")
PanTextbookOutcomesSubset$STEROID = relevel(PanTextbookOutcomesSubset$STEROID, ref="Yes")
PanTextbookOutcomesSubset$ASCITES = relevel(PanTextbookOutcomesSubset$ASCITES, ref="Yes")
PanTextbookOutcomesSubset$HXCOPD = relevel(PanTextbookOutcomesSubset$HXCOPD, ref="Yes")
PanTextbookOutcomesSubset$DIALYSIS = relevel(PanTextbookOutcomesSubset$DIALYSIS, ref="Yes")
PanTextbookOutcomesSubset$SMOKE = relevel(PanTextbookOutcomesSubset$SMOKE, ref="No")
PanTextbookOutcomesSubset$HXCHF = relevel(PanTextbookOutcomesSubset$HXCHF, ref="Yes")
PanTextbookOutcomesSubset$Age = relevel(PanTextbookOutcomesSubset$Age, ref="85+")
PanTextbookOutcomesSubset$FNSTATUS2 = relevel(PanTextbookOutcomesSubset$FNSTATUS2, ref="Totally Dependent")
```
```{r}
UVPan <- PanTextbookOutcomesSubset %>%
select(PRNCPTX, Age, SEX, RACE_NEW, BMILabled, ASACLAS, STEROID, ASCITES, DYSPNEA, SMOKE, DIALYSIS, DIABETES, HYPERMED, HXCOPD, HXCHF, TextbookOutcomePanOR) %>%
tbl_uvregression(
method = glm,
y = TextbookOutcomePanOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changling the referent level
PanTextbookOutcomesSubset$PRNCPTX <- as.factor(PanTextbookOutcomesSubset$PRNCPTX)
PanTextbookOutcomesSubset$SEX <- as.factor(PanTextbookOutcomesSubset$SEX)
PanTextbookOutcomesSubset$ASACLAS <- as.factor(PanTextbookOutcomesSubset$ASACLAS)
PanTextbookOutcomesSubset$BMILabled <- as.factor(PanTextbookOutcomesSubset$BMILabled)
PanTextbookOutcomesSubset$STEROID <- as.factor(PanTextbookOutcomesSubset$STEROID)
PanTextbookOutcomesSubset$DIABETES <- as.factor(PanTextbookOutcomesSubset$DIABETES)
PanTextbookOutcomesSubset$HYPERMED <- as.factor(PanTextbookOutcomesSubset$HYPERMED)
PanTextbookOutcomesSubset$ASCITES <- as.factor(PanTextbookOutcomesSubset$ASCITES)
PanTextbookOutcomesSubset$HXCOPD <- as.factor(PanTextbookOutcomesSubset$HXCOPD)
PanTextbookOutcomesSubset$DIALYSIS <- as.factor(PanTextbookOutcomesSubset$DIALYSIS)
PanTextbookOutcomesSubset$HXCHF <- as.factor(PanTextbookOutcomesSubset$HXCHF)
PanTextbookOutcomesSubset$Age <- as.factor(PanTextbookOutcomesSubset$Age)
PanTextbookOutcomesSubset$FNSTATUS2 <- as.factor(PanTextbookOutcomesSubset$FNSTATUS2)
PanTextbookOutcomesSubset$PatientGroup <- as.factor(PanTextbookOutcomesSubset$PatientGroup)
PanTextbookOutcomesSubset$PRNCPTX = relevel(PanTextbookOutcomesSubset$PRNCPTX, ref="Distal Pancreatectomy")
PanTextbookOutcomesSubset$SEX = relevel(PanTextbookOutcomesSubset$SEX, ref="male")
PanTextbookOutcomesSubset$ASACLAS = relevel(PanTextbookOutcomesSubset$ASACLAS, ref="4-Life Threat")
PanTextbookOutcomesSubset$BMILabled = relevel(PanTextbookOutcomesSubset$BMILabled, ref="Normal Weight")
PanTextbookOutcomesSubset$DIABETES = relevel(PanTextbookOutcomesSubset$DIABETES, ref="NO")
PanTextbookOutcomesSubset$HYPERMED = relevel(PanTextbookOutcomesSubset$HYPERMED, ref="Yes")
PanTextbookOutcomesSubset$STEROID = relevel(PanTextbookOutcomesSubset$STEROID, ref="Yes")
PanTextbookOutcomesSubset$ASCITES = relevel(PanTextbookOutcomesSubset$ASCITES, ref="Yes")
PanTextbookOutcomesSubset$HXCOPD = relevel(PanTextbookOutcomesSubset$HXCOPD, ref="Yes")
PanTextbookOutcomesSubset$DIALYSIS = relevel(PanTextbookOutcomesSubset$DIALYSIS, ref="Yes")
PanTextbookOutcomesSubset$HXCHF = relevel(PanTextbookOutcomesSubset$HXCHF, ref="Yes")
PanTextbookOutcomesSubset$Age = relevel(PanTextbookOutcomesSubset$Age, ref="85+")
PanTextbookOutcomesSubset$FNSTATUS2 = relevel(PanTextbookOutcomesSubset$FNSTATUS2, ref="Totally Dependent")
```
```{r}
####Multivariant analysis serious complications
MVORPan <-
glm(TextbookOutcomePanOR ~ PRNCPTX + Age + SEX + RACE_NEW + BMILabled + ASACLAS + STEROID + ASCITES + DYSPNEA + SMOKE + DIALYSIS + DIABETES + HYPERMED + HXCOPD + HXCHF,
data = PanTextbookOutcomesSubset,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###continue on to merge the table sets
MVORTablePan <-
tbl_regression(MVORPan, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
tbl_merge(
list(UVPan, MVORTablePan),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changling the referent level
HepTextbookOutcomesSubset$PRNCPTX <- as.factor(HepTextbookOutcomesSubset$PRNCPTX)
HepTextbookOutcomesSubset$SEX <- as.factor(HepTextbookOutcomesSubset$SEX)
HepTextbookOutcomesSubset$BMILabled <- as.factor(HepTextbookOutcomesSubset$BMILabled)
HepTextbookOutcomesSubset$ASACLAS <- as.factor(HepTextbookOutcomesSubset$ASACLAS)
HepTextbookOutcomesSubset$STEROID <- as.factor(HepTextbookOutcomesSubset$STEROID)
HepTextbookOutcomesSubset$DIABETES <- as.factor(HepTextbookOutcomesSubset$DIABETES)
HepTextbookOutcomesSubset$HYPERMED <- as.factor(HepTextbookOutcomesSubset$HYPERMED)
HepTextbookOutcomesSubset$ASCITES <- as.factor(HepTextbookOutcomesSubset$ASCITES)
HepTextbookOutcomesSubset$HXCOPD <- as.factor(HepTextbookOutcomesSubset$HXCOPD)
HepTextbookOutcomesSubset$DIALYSIS <- as.factor(HepTextbookOutcomesSubset$DIALYSIS)
HepTextbookOutcomesSubset$HXCHF <- as.factor(HepTextbookOutcomesSubset$HXCHF)
HepTextbookOutcomesSubset$SMOKE <- as.factor(HepTextbookOutcomesSubset$SMOKE)
HepTextbookOutcomesSubset$Age <- as.factor(HepTextbookOutcomesSubset$Age)
HepTextbookOutcomesSubset$PRNCPTX = relevel(HepTextbookOutcomesSubset$PRNCPTX, ref="Trisegmentectomy")
HepTextbookOutcomesSubset$SEX = relevel(HepTextbookOutcomesSubset$SEX, ref="male")
HepTextbookOutcomesSubset$BMILabled = relevel(HepTextbookOutcomesSubset$BMILabled, ref="Normal Weight")
HepTextbookOutcomesSubset$ASACLAS = relevel(HepTextbookOutcomesSubset$ASACLAS, ref="4-Life Threat")
HepTextbookOutcomesSubset$DIABETES = relevel(HepTextbookOutcomesSubset$DIABETES, ref="Yes")
HepTextbookOutcomesSubset$HYPERMED = relevel(HepTextbookOutcomesSubset$HYPERMED, ref="Yes")
HepTextbookOutcomesSubset$STEROID = relevel(HepTextbookOutcomesSubset$STEROID, ref="Yes")
HepTextbookOutcomesSubset$ASCITES = relevel(HepTextbookOutcomesSubset$ASCITES, ref="Yes")
HepTextbookOutcomesSubset$HXCOPD = relevel(HepTextbookOutcomesSubset$HXCOPD, ref="Yes")
HepTextbookOutcomesSubset$DIALYSIS = relevel(HepTextbookOutcomesSubset$DIALYSIS, ref="Yes")
HepTextbookOutcomesSubset$HXCHF = relevel(HepTextbookOutcomesSubset$HXCHF, ref="Yes")
HepTextbookOutcomesSubset$SMOKE = relevel(HepTextbookOutcomesSubset$SMOKE, ref="Yes")
HepTextbookOutcomesSubset$Age = relevel(HepTextbookOutcomesSubset$Age, ref="85+")
```
```{r}
UVHep <- HepTextbookOutcomesSubset %>%
select(PRNCPTX, Age, SEX, RACE_NEW, BMILabled, ASACLAS, STEROID, ASCITES, DYSPNEA, SMOKE, DIALYSIS, DIABETES, HYPERMED, HXCOPD, HXCHF, TextbookOutcomeHepOR) %>%
tbl_uvregression(
method = glm,
y = TextbookOutcomeHepOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
HepTextbookOutcomesSubset$PRNCPTX <- as.factor(HepTextbookOutcomesSubset$PRNCPTX)
HepTextbookOutcomesSubset$BMILabled <- as.factor(HepTextbookOutcomesSubset$BMILabled)
HepTextbookOutcomesSubset$ASACLAS <- as.factor(HepTextbookOutcomesSubset$ASACLAS)
HepTextbookOutcomesSubset$STEROID <- as.factor(HepTextbookOutcomesSubset$STEROID)
HepTextbookOutcomesSubset$DIABETES <- as.factor(HepTextbookOutcomesSubset$DIABETES)
HepTextbookOutcomesSubset$HYPERMED <- as.factor(HepTextbookOutcomesSubset$HYPERMED)
HepTextbookOutcomesSubset$ASCITES <- as.factor(HepTextbookOutcomesSubset$ASCITES)
HepTextbookOutcomesSubset$HXCOPD <- as.factor(HepTextbookOutcomesSubset$HXCOPD)
HepTextbookOutcomesSubset$DIALYSIS <- as.factor(HepTextbookOutcomesSubset$DIALYSIS)
HepTextbookOutcomesSubset$HXCHF <- as.factor(HepTextbookOutcomesSubset$HXCHF)
HepTextbookOutcomesSubset$SMOKE <- as.factor(HepTextbookOutcomesSubset$SMOKE)
HepTextbookOutcomesSubset$Age <- as.factor(HepTextbookOutcomesSubset$Age)
HepTextbookOutcomesSubset$PRNCPTX = relevel(HepTextbookOutcomesSubset$PRNCPTX, ref="Trisegmentectomy")
HepTextbookOutcomesSubset$BMILabled = relevel(HepTextbookOutcomesSubset$BMILabled, ref="Normal Weight")
HepTextbookOutcomesSubset$ASACLAS = relevel(HepTextbookOutcomesSubset$ASACLAS, ref="4-Life Threat")
HepTextbookOutcomesSubset$DIABETES = relevel(HepTextbookOutcomesSubset$DIABETES, ref="Yes")
HepTextbookOutcomesSubset$HYPERMED = relevel(HepTextbookOutcomesSubset$HYPERMED, ref="Yes")
HepTextbookOutcomesSubset$STEROID = relevel(HepTextbookOutcomesSubset$STEROID, ref="Yes")
HepTextbookOutcomesSubset$ASCITES = relevel(HepTextbookOutcomesSubset$ASCITES, ref="Yes")
HepTextbookOutcomesSubset$HXCOPD = relevel(HepTextbookOutcomesSubset$HXCOPD, ref="Yes")
HepTextbookOutcomesSubset$DIALYSIS = relevel(HepTextbookOutcomesSubset$DIALYSIS, ref="Yes")
HepTextbookOutcomesSubset$HXCHF = relevel(HepTextbookOutcomesSubset$HXCHF, ref="Yes")
HepTextbookOutcomesSubset$SMOKE = relevel(HepTextbookOutcomesSubset$SMOKE, ref="Yes")
HepTextbookOutcomesSubset$Age = relevel(HepTextbookOutcomesSubset$Age, ref="85+")
```
```{r}
####Multivariant analysis serious complications
MVORHep <-
glm(TextbookOutcomeHepOR ~ PRNCPTX + Age + SEX + RACE_NEW + BMILabled + ASACLAS + STEROID + ASCITES + DYSPNEA + SMOKE + DIALYSIS + DIABETES + HYPERMED + HXCOPD + HXCHF,
data = HepTextbookOutcomesSubset,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###continue on to merge the table sets
MVORTableHep <-
tbl_regression(MVORHep, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
tbl_merge(
list(UVHep, MVORTableHep),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changing the referent level
TextbookOutcomeOR$PatientGroup <- as.factor(TextbookOutcomeOR$PatientGroup)
TextbookOutcomeOR$BMILabled <- as.factor(TextbookOutcomeOR$BMILabled)
TextbookOutcomeOR$ASACLAS <- as.factor(TextbookOutcomeOR$ASACLAS)
TextbookOutcomeOR$STEROID <- as.factor(TextbookOutcomeOR$STEROID)
TextbookOutcomeOR$DIABETES <- as.factor(TextbookOutcomeOR$DIABETES)
TextbookOutcomeOR$HYPERMED <- as.factor(TextbookOutcomeOR$HYPERMED)
TextbookOutcomeOR$ASCITES <- as.factor(TextbookOutcomeOR$ASCITES)
TextbookOutcomeOR$HXCOPD <- as.factor(TextbookOutcomeOR$HXCOPD)
TextbookOutcomeOR$DIALYSIS <- as.factor(TextbookOutcomeOR$DIALYSIS)
TextbookOutcomeOR$HXCHF <- as.factor(TextbookOutcomeOR$HXCHF)
TextbookOutcomeOR$SMOKE <- as.factor(TextbookOutcomeOR$SMOKE)
TextbookOutcomeOR$Age <- as.factor(TextbookOutcomeOR$Age)
TextbookOutcomeOR$SEX <- as.factor(TextbookOutcomeOR$SEX)
TextbookOutcomeOR$BMILabled = relevel(TextbookOutcomeOR$BMILabled, ref="Normal Weight")
TextbookOutcomeOR$ASACLAS = relevel(TextbookOutcomeOR$ASACLAS, ref="4-Life Threat")
TextbookOutcomeOR$DIABETES = relevel(TextbookOutcomeOR$DIABETES, ref="Yes")
TextbookOutcomeOR$SEX = relevel(TextbookOutcomeOR$SEX, ref="male")
TextbookOutcomeOR$SMOKE = relevel(TextbookOutcomeOR$SMOKE, ref="Yes")
TextbookOutcomeOR$STEROID = relevel(TextbookOutcomeOR$STEROID, ref="Yes")
TextbookOutcomeOR$ASCITES = relevel(TextbookOutcomeOR$ASCITES, ref="Yes")
TextbookOutcomeOR$HXCOPD = relevel(TextbookOutcomeOR$HXCOPD, ref="Yes")
TextbookOutcomeOR$DIALYSIS = relevel(TextbookOutcomeOR$DIALYSIS, ref="Yes")
TextbookOutcomeOR$HXCHF = relevel(TextbookOutcomeOR$HXCHF, ref="Yes")
TextbookOutcomeOR$Age = relevel(TextbookOutcomeOR$Age, ref="85+")
```
```{r}
###Univariant, multivariant for everyone
UVAll <- TextbookOutcomeOR %>%
select(PatientGroup, Age, SEX, RACE_NEW, BMILabled, ASACLAS, STEROID, ASCITES, DYSPNEA, SMOKE, DIALYSIS, DIABETES, HYPERMED, HXCOPD, HXCHF, TextbookOutcomeAllOR) %>%
tbl_uvregression(
method = glm,
y = TextbookOutcomeAllOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changling the referent level
TextbookOutcomeOR$PatientGroup <- as.factor(TextbookOutcomeOR$PatientGroup)
TextbookOutcomeOR$SEX <- as.factor(TextbookOutcomeOR$SEX)
TextbookOutcomeOR$ASACLAS <- as.factor(TextbookOutcomeOR$ASACLAS)
TextbookOutcomeOR$STEROID <- as.factor(TextbookOutcomeOR$STEROID)
TextbookOutcomeOR$DIABETES <- as.factor(TextbookOutcomeOR$DIABETES)
TextbookOutcomeOR$SMOKE <- as.factor(TextbookOutcomeOR$SMOKE)
TextbookOutcomeOR$ASCITES <- as.factor(TextbookOutcomeOR$ASCITES)
TextbookOutcomeOR$HXCOPD <- as.factor(TextbookOutcomeOR$HXCOPD)
TextbookOutcomeOR$DIALYSIS <- as.factor(TextbookOutcomeOR$DIALYSIS)
TextbookOutcomeOR$HXCHF <- as.factor(TextbookOutcomeOR$HXCHF)
TextbookOutcomeOR$Age <- as.factor(TextbookOutcomeOR$Age)
TextbookOutcomeOR$SEX = relevel(TextbookOutcomeOR$SEX, ref="male")
TextbookOutcomeOR$BMILabled = relevel(TextbookOutcomeOR$BMILabled, ref="Normal Weight")
TextbookOutcomeOR$ASACLAS = relevel(TextbookOutcomeOR$ASACLAS, ref="4-Life Threat")
TextbookOutcomeOR$DIABETES = relevel(TextbookOutcomeOR$DIABETES, ref="Yes")
TextbookOutcomeOR$SMOKE = relevel(TextbookOutcomeOR$SMOKE, ref="Yes")
TextbookOutcomeOR$STEROID = relevel(TextbookOutcomeOR$STEROID, ref="Yes")
TextbookOutcomeOR$ASCITES = relevel(TextbookOutcomeOR$ASCITES, ref="Yes")
TextbookOutcomeOR$HXCOPD = relevel(TextbookOutcomeOR$HXCOPD, ref="Yes")
TextbookOutcomeOR$DIALYSIS = relevel(TextbookOutcomeOR$DIALYSIS, ref="Yes")
TextbookOutcomeOR$HXCHF = relevel(TextbookOutcomeOR$HXCHF, ref="Yes")
TextbookOutcomeOR$Age = relevel(TextbookOutcomeOR$Age, ref="85+")
```
```{r}
####Multivariant analysis serious complications
MVORAll <-
glm(TextbookOutcomeAllOR ~ PatientGroup + Age + SEX + RACE_NEW + BMILabled + ASACLAS + STEROID + ASCITES + DYSPNEA + SMOKE + DIALYSIS + DIABETES + HYPERMED + HXCOPD + HXCHF,
data = TextbookOutcomeOR,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###continue on to merge the table sets
MVORTableAll <-
tbl_regression(MVORAll, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
tbl_merge(
list(UVAll, MVORTableAll),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
PanOddsPlotty <-
PanTextbookOutcomesSubset %>%
select(PRNCPTX, SEX, RACE_NEW, BMILabled, STEROID, DIALYSIS, HXCOPD, HXCHF, TextbookOutcomePanOR)
```
```{r}
PanOddsPlotty2 <- PanOddsPlotty[complete.cases(PanOddsPlotty), ] #Create a copy
```
```{r}
head(PanOddsPlotty2, 10)
```
```{r}
PanOddsPlotty2$TextbookOutcomePanOR <- factor(PanOddsPlotty2$TextbookOutcomePanOR)
PanOddsPlotty2$RACE_NEW <- factor(PanOddsPlotty2$RACE_NEW)
str(PanOddsPlotty2)
```
```{r}
for(i in 1:8) {
PanOddsPlotty2[, i] <- as.numeric(as.factor(PanOddsPlotty2[, i]))
}
```
```{r}
###renaming variables
PanOddsPlotty2 <- rename(PanOddsPlotty2, 'No Dialysis' = DIALYSIS)
PanOddsPlotty2 <- rename(PanOddsPlotty2, 'Female' = SEX)
PanOddsPlotty2 <- rename(PanOddsPlotty2, 'White' = RACE_NEW)
PanOddsPlotty2 <- rename(PanOddsPlotty2, 'No Steroid' = STEROID)
PanOddsPlotty2 <- rename(PanOddsPlotty2, 'No COPD' = HXCOPD)
PanOddsPlotty2 <- rename(PanOddsPlotty2, 'No CHF' = HXCHF)
PanOddsPlotty2 <- rename(PanOddsPlotty2, 'Total Pancreatectomy' = PRNCPTX)
PanOddsPlotty2 <- rename(PanOddsPlotty2, 'Underweight' = BMILabled)
```
```{r}
glm_model <- train(TextbookOutcomePanOR ~ .,
data = PanOddsPlotty2,
method = "glm",
family = "binomial")
summary(glm_model)
```
```{r}
## Number of Fisher Scoring iterations: 4
plotty <- OddsPlotty::odds_plot(glm_model$finalModel,
title = "Pancreas Group",
subtitle = "Independent Associations for TO")
```
```{r}
## Waiting for profiling to be done...
plot <- plotty$odds_plot
plot <- plot + ggthemes::theme_economist() + theme(legend.position = "NULL")
plot + geom_text(label=round(plotty$odds_plot$data$OR, digits = 2), hjust=0, vjust=1.8)
```
```{r}
HepOddsPlotty <-
HepTextbookOutcomesSubset %>%
select(PRNCPTX, SEX, RACE_NEW, BMILabled, STEROID, DIALYSIS, DIABETES, HXCOPD, HXCHF, TextbookOutcomeHepOR)
```
```{r}
HepOddsPlotty2 <- HepOddsPlotty[complete.cases(HepOddsPlotty), ] #Create a copy
```
```{r}
head(HepOddsPlotty2, 10)
```
```{r}
HepOddsPlotty2$TextbookOutcomeHepOR <- factor(HepOddsPlotty2$TextbookOutcomeHepOR)
HepOddsPlotty2$RACE_NEW <- factor(HepOddsPlotty2$RACE_NEW)
str(HepOddsPlotty2)
```
```{r}
for(i in 1:9) {
HepOddsPlotty2[, i] <- as.numeric(as.factor(HepOddsPlotty2[, i]))
}
```
```{r}
###renaming variables
HepOddsPlotty2 <- rename(HepOddsPlotty2, 'No Dialysis' = DIALYSIS)
HepOddsPlotty2 <- rename(HepOddsPlotty2, 'Female' = SEX)
HepOddsPlotty2 <- rename(HepOddsPlotty2, 'White' = RACE_NEW)
HepOddsPlotty2 <- rename(HepOddsPlotty2, 'No Steroid' = STEROID)
HepOddsPlotty2 <- rename(HepOddsPlotty2, 'No COPD' = HXCOPD)
HepOddsPlotty2 <- rename(HepOddsPlotty2, 'No CHF' = HXCHF)
HepOddsPlotty2 <- rename(HepOddsPlotty2, 'No Diabetes' = DIABETES)
HepOddsPlotty2 <- rename(HepOddsPlotty2, 'Lobectomy' = PRNCPTX)
HepOddsPlotty2 <- rename(HepOddsPlotty2, 'Obese' = BMILabled)
```
```{r}
glm_modelhep <- train(TextbookOutcomeHepOR ~ .,
data = HepOddsPlotty2,
method = "glm",
family = "binomial")
summary(glm_modelhep)
```
```{r}
plottyhep <- OddsPlotty::odds_plot(glm_modelhep$finalModel,
title = "Liver Group",
subtitle = "Independent Associations for TO")
```
```{r}
## Waiting for profiling to be done...
plothep <- plottyhep$odds_plot
plothep <- plothep + ggthemes::theme_economist() + theme(legend.position = "NULL")
plothep + geom_text(label=round(plottyhep$odds_plot$data$OR, digits = 2), hjust=0, vjust=1.8)
```
```{r}
BothOddsPlotty <-
TextbookOutcomeOR %>%
select(PatientGroup, SEX, STEROID, DIALYSIS, DIABETES, HXCOPD, HXCHF, TextbookOutcomeAllOR)
```
```{r}
BothOddsPlotty2 <- BothOddsPlotty[complete.cases(BothOddsPlotty), ] #Create a copy
```
```{r}
head(BothOddsPlotty2, 10)
```
```{r}
BothOddsPlotty2$TextbookOutcomeAllOR <- factor(BothOddsPlotty2$TextbookOutcomeAllOR)
str(BothOddsPlotty2)
```
```{r}
for(i in 1:7) {
BothOddsPlotty2[, i] <- as.numeric(as.factor(BothOddsPlotty2[, i]))
}
```
```{r}
###renaming variables
BothOddsPlotty2 <- rename(BothOddsPlotty2, 'No Dialysis' = DIALYSIS)
BothOddsPlotty2 <- rename(BothOddsPlotty2, 'Female' = SEX)
BothOddsPlotty2 <- rename(BothOddsPlotty2, 'No Steroid' = STEROID)
BothOddsPlotty2 <- rename(BothOddsPlotty2, 'No COPD' = HXCOPD)
BothOddsPlotty2 <- rename(BothOddsPlotty2, 'No CHF' = HXCHF)
BothOddsPlotty2 <- rename(BothOddsPlotty2, 'No Diabetes' = DIABETES)
BothOddsPlotty2 <- rename(BothOddsPlotty2, 'Pancreatic' = PatientGroup)
```
```{r}
glm_modelboth <- train(TextbookOutcomeAllOR ~ .,
data = BothOddsPlotty2,
method = "glm",
family = "binomial")
summary(glm_modelboth)
```
```{r}
plottyboth <- OddsPlotty::odds_plot(glm_modelboth$finalModel,
title = "Liver & Pancreatic Group",
subtitle = "Independent Associations for TO")
```
```{r}
## Waiting for profiling to be done...
plotboth <- plottyboth$odds_plot
plotboth <- plotboth + ggthemes::theme_economist() + theme(legend.position = "NULL")
plotboth + geom_text(label=round(plottyboth$odds_plot$data$OR, digits = 2), hjust=0, vjust=1.8)
```
Local Data Survival
---
title: "Local Data Survival Analysis"
author: "Abdimajid Mohamed"
date: "3/17/2021"
output: html_document
---
```{r}
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(dplyr)
library(lubridate)
library(zoo)
```
```{r}
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"))
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
MonthSurvival <-
MonthSurvival %>%
select(Medical.Record.Number, Date.of.Last.Contact, Date.of.Initial.Diagnosis)
```
```{r}
AllFinal <-
merge(MonthSurvival, PanCancerAllYears, by.x = "Medical.Record.Number", by.y = "Medical.Record.Number", all.x=F, all.y=FALSE)
```
```{r}
AllFinal$Date.of.Initial.Diagnosis.y <- mdy(AllFinal$Date.of.Initial.Diagnosis.y)
AllFinal$Date.of.Last.Contact <- mdy(AllFinal$Date.of.Last.Contact)
AllFinal$Date.of.First.Surgery <- mdy(AllFinal$Date.of.First.Surgery)
```
```{r}
AllFinal$MonthDate <- (as.yearmon(AllFinal$Date.of.Last.Contact, format = "%m/%Y")-
as.yearmon(AllFinal$Date.of.Initial.Diagnosis.y, format = "%m/%Y"))*12
```
```{r}
###removing duplicates
AllFinalUnique <-
AllFinal %>%
distinct()
```
```{r}
LocalDataSet <- AllFinalUnique[!duplicated(AllFinalUnique[c("Medical.Record.Number")]),]
```
```{r}
rm(PanCancer2000,PanCancer2001,PanCancer2002,PanCancer2003,PanCancer2004,PanCancer2005,PanCancer2006,PanCancer2007,PanCancer2008,PanCancer2009,PanCancer2010,PanCancer2011,PanCancer2012,PanCancer2013,PanCancer2014,PanCancer2015,PanCancer2016,PanCancer2017,PanCancer2018,PanCancer2019,PanCancer2020,PanCancerAllYears)
```
```{r}
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)))
```
```{r}
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)
```
```{r}
LocalDataSet4$X1st.Course.Date.Radiation.Started <- mdy(LocalDataSet4$X1st.Course.Date.Radiation.Started)
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)
```
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)
```{r}
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)
```
```{r}
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"] <- "EminentlyResectable"
LocalDataSet4$AJCC.Clinical.Stage.Group[LocalDataSet4$AJCC.Clinical.Stage.Group == "2A"] <- "EminentlyResectable"
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 )
```
```{r}
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)
```
```{r}
table(LocalDataSet4$Marital.Status.at.DX)
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
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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)
```
```{r}
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()
```
```{r}
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()
```
```{r}
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()
```
```{r}
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()
```
```{r}
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()
```
```{r}
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()
```
```{r}
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)
```
```{r}
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)))))
```
```{r}
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)
```
```{r}
#####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)
```
```{r}
#####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
```
```{r}
SurvivalLocalData$Vital.Status <- as.numeric(SurvivalLocalData$Vital.Status)
SurvivalLocalData$MonthDate <- as.numeric(SurvivalLocalData$MonthDate)
```
```{r}
ORLocalData$Era <- as.numeric(ORLocalData$Era)
```
```{r}
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
```
```{r}
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
```
```{r Univariant analysis Everyone OR}
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()
```
```{r}
####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)
```
```{r}
###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()
```
```{r}
tbl_merge(
list(UVEveryoneOR, MVORTableEveryoneOR),
tab_spanner = c("All Patients, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r Univariant analysis Localized}
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()
```
```{r}
####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)
```
```{r}
###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()
```
```{r}
tbl_merge(
list(UVLocalizedOR, MVORTableLocalizedOR),
tab_spanner = c("Localized, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r Univariant analysis Eminently Resectable}
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()
```
```{r}
####Multivariant analysis Eminentlyresectable
MVOREminentlyOR <-
glm(Era ~ Age + Surgery + Radiation,
data = OREminentlyResectable,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###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()
```
```{r}
tbl_merge(
list(UVEminentlyOR, MVORTableEminentlyOR),
tab_spanner = c("Eminently Resectable, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r Univariant analysis Locally Advanced}
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()
```
```{r}
####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)
```
```{r}
###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()
```
```{r}
tbl_merge(
list(UVLocallyAdvancedOR, MVORTableLocallyAdvancedOR),
tab_spanner = c("Locally Advanced, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r Univariant analysis Surgery}
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()
```
```{r}
####Multivariant analysis Surgery
MVORSurgeryOR <-
glm(Era ~ Primary.Payer.at.DX + AJCC.Clinical.Stage.Group + Radiation,
data = ORSurgery,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###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()
```
```{r}
tbl_merge(
list(UVSurgeryOR, MVORTableSurgeryOR),
tab_spanner = c("Surgery, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r Univariant analysis Stage4}
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()
```
```{r}
####Multivariant analysis serious complications
MVORStage4OR <-
glm(Era ~ Primary.Payer.at.DX + Radiation,
data = ORLocalDataStage4,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###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()
```
```{r}
tbl_merge(
list(UVStage4OR, MVORTableORStage4),
tab_spanner = c("Stage 4, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
### 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()
```
```{r}
###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()
```
```{r}
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurvEveryone, MVSurvEveryone),
tab_spanner = c("Everyone,**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocalData)
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocalData)
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocalData)
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocalData)
survfit(Surv(MonthDate, Vital.Status) ~ AJCC.Clinical.Stage.Group, data = SurvivalLocalData)
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalLocalData)
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalLocalData)
```
```{r}
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
data = SurvivalLocalData)
ggsurvplot(fit, data = SurvivalLocalData, risk.table = TRUE)
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
)
```
```{r}
### 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()
```
```{r}
###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()
```
```{r}
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurvStage4, MVSurvStage4),
tab_spanner = c("Stage4, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocalDataStage4)
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocalDataStage4)
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocalDataStage4)
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocalData)
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalLocalDataStage4)
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalLocalDataStage4)
```
```{r}
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
data = SurvivalLocalDataStage4)
ggsurvplot(fit, data = SurvivalLocalDataStage4, risk.table = TRUE)
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
)
```
```{r}
### 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()
```
```{r}
###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()
```
```{r}
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurvLocalized, MVSurvLocalized),
tab_spanner = c("Localized, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocalized)
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocalized)
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocalized)
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocalized)
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalLocalized)
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalLocalized)
```
```{r}
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
data = SurvivalLocalized)
ggsurvplot(fit, data = SurvivalLocalized, risk.table = TRUE)
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
)
```
```{r}
### 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()
```
```{r}
###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()
```
```{r}
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurvLocallyAdvanced, MVSurvLocallyAdvanced),
tab_spanner = c("Locally Advanced, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalLocallyAdvanced)
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalLocallyAdvanced)
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalLocallyAdvanced)
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalLocallyAdvanced)
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalLocallyAdvanced)
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalLocallyAdvanced)
```
```{r}
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
data = SurvivalLocallyAdvanced)
ggsurvplot(fit, data = SurvivalLocallyAdvanced, risk.table = TRUE)
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
)
```
```{r}
### 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()
```
```{r}
###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()
```
```{r}
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurvEminentlyResectable, MVSurvEminentlyResectable),
tab_spanner = c("Eminently Resectable, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalEminentlyResectable)
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalEminentlyResectable)
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalEminentlyResectable)
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalEminentlyResectable)
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalEminentlyResectable)
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalEminentlyResectable)
```
```{r}
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
data = SurvivalEminentlyResectable)
ggsurvplot(fit, data = SurvivalEminentlyResectable, risk.table = TRUE)
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
)
```
```{r}
### 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()
```
```{r}
###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()
```
```{r}
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurvSurgery, MVSurvSurgery),
tab_spanner = c("Surgery, **Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
survfit(Surv(MonthDate, Vital.Status) ~ Era, data = SurvivalSurgery)
survfit(Surv(MonthDate, Vital.Status) ~ Age, data = SurvivalSurgery)
survfit(Surv(MonthDate, Vital.Status) ~ Sex, data = SurvivalSurgery)
survfit(Surv(MonthDate, Vital.Status) ~ Race.1, data = SurvivalSurgery)
survfit(Surv(MonthDate, Vital.Status) ~ Marital.Status.at.DX, data = SurvivalSurgery)
survfit(Surv(MonthDate, Vital.Status) ~ Primary.Payer.at.DX, data = SurvivalSurgery)
survfit(Surv(MonthDate, Vital.Status) ~ AJCC.Clinical.Stage.Group , data = SurvivalSurgery)
```
```{r}
fit <- survfit(Surv(MonthDate, Vital.Status) ~ Era,
data = SurvivalSurgery)
ggsurvplot(fit, data = SurvivalSurgery, risk.table = TRUE)
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
)
```
Days 3-5 Amylase cutoff 3,000
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(rms)
library(VIM)
library(pROC)
library(rmarkdown)
library(ROCR)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, day )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
sum(is.na(Oddsratio3$AmylaseDrainPod1))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
print(FRSOddsRatio1$Fistula.Grade)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSORDay1 <-
mutate(FRSOddsRatio2, AmylaseCutoff300 = ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 %in% 300:200000, ">300",
ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 %in% 0:300, "<300",
ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 ==NA, "NA"))))
FinalFRS <-
mutate(FRSORDay1, AmylaseCutoff5000 = ifelse(FRSORDay1$PAN_AMYLASE_POD230 %in% 5000:200000, ">5,000",
ifelse(FRSORDay1$PAN_AMYLASE_POD230 %in% 0:5000, "<5,000",
ifelse(FRSORDay1$PAN_AMYLASE_POD230 ==NA, "NA"))))
FinalFRS1 <-
mutate(FinalFRS, FistulaPresent = ifelse(FinalFRS$Fistula.Present == "Yes", 1,
ifelse(FinalFRS$Fistula.Present == "No", 0, NA)))
ImputedData <-
FinalFRS1 %>%
select(FistulaPresent, Day, AmylaseCutoff300, AmylaseCutoff5000)
ImputedData1 <- kNN(ImputedData)
FinalDataImputed <- subset(ImputedData1, select = FistulaPresent:AmylaseCutoff5000)
class(FinalDataImputed$Day)
Day1 <-
subset(FinalDataImputed, Day == "1")
Day35 <-
subset(FinalDataImputed, Day == "3-5")
OneandFiveThousand <-
glm(FistulaPresent~AmylaseCutoff5000, family = binomial(link = "logit"), data = Day1)
FivePredictModel=predict(OneandFiveThousand)
FivePredictModel1=prediction(FivePredictModel, Day1$FistulaPresent)
plot(performance(FivePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(FivePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
OneandThreeThousand <-
glm(FistulaPresent~AmylaseCutoff300, family = binomial(link = "logit"), data = Day1)
ThreePredictModel=predict(OneandThreeThousand)
ThreePredictModel1=prediction(ThreePredictModel, Day1$FistulaPresent)
plot(performance(ThreePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
ThreeFiveAndFiveThousand <-
glm(FistulaPresent~AmylaseCutoff5000, family = binomial(link = "logit"), data = Day35)
ThreeandFiveandFivePredictModel=predict(ThreeFiveAndFiveThousand)
ThreeandFiveandFivePredictModel1=prediction(ThreeandFiveandFivePredictModel, Day35$FistulaPresent)
plot(performance(ThreeandFiveandFivePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreeandFiveandFivePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
ThreefiveandThreeThousand <-
glm(FistulaPresent~AmylaseCutoff300, family = binomial(link = "logit"), data = Day35)
ThreeFiveandThreePredictModel=predict(ThreefiveandThreeThousand)
ThreeFiveandThreePredictModel1=prediction(ThreeFiveandThreePredictModel, Day35$FistulaPresent)
plot(performance(ThreeFiveandThreePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreeFiveandThreePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
Days 3-5 Amylase cutoff 5,000
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(rms)
library(VIM)
library(pROC)
library(rmarkdown)
library(ROCR)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, day )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
sum(is.na(Oddsratio3$AmylaseDrainPod1))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
print(FRSOddsRatio1$Fistula.Grade)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSORDay1 <-
mutate(FRSOddsRatio2, AmylaseCutoff300 = ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 %in% 300:200000, ">300",
ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 %in% 0:300, "<300",
ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 ==NA, "NA"))))
FinalFRS <-
mutate(FRSORDay1, AmylaseCutoff5000 = ifelse(FRSORDay1$PAN_AMYLASE_POD230 %in% 5000:200000, ">5,000",
ifelse(FRSORDay1$PAN_AMYLASE_POD230 %in% 0:5000, "<5,000",
ifelse(FRSORDay1$PAN_AMYLASE_POD230 ==NA, "NA"))))
FinalFRS1 <-
mutate(FinalFRS, FistulaPresent = ifelse(FinalFRS$Fistula.Present == "Yes", 1,
ifelse(FinalFRS$Fistula.Present == "No", 0, NA)))
ImputedData <-
FinalFRS1 %>%
select(FistulaPresent, Day, AmylaseCutoff300, AmylaseCutoff5000)
ImputedData1 <- kNN(ImputedData)
FinalDataImputed <- subset(ImputedData1, select = FistulaPresent:AmylaseCutoff5000)
class(FinalDataImputed$Day)
Day1 <-
subset(FinalDataImputed, Day == "1")
Day35 <-
subset(FinalDataImputed, Day == "3-5")
OneandFiveThousand <-
glm(FistulaPresent~AmylaseCutoff5000, family = binomial(link = "logit"), data = Day1)
FivePredictModel=predict(OneandFiveThousand)
FivePredictModel1=prediction(FivePredictModel, Day1$FistulaPresent)
plot(performance(FivePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(FivePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
OneandThreeThousand <-
glm(FistulaPresent~AmylaseCutoff300, family = binomial(link = "logit"), data = Day1)
ThreePredictModel=predict(OneandThreeThousand)
ThreePredictModel1=prediction(ThreePredictModel, Day1$FistulaPresent)
plot(performance(ThreePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
ThreeFiveAndFiveThousand <-
glm(FistulaPresent~AmylaseCutoff5000, family = binomial(link = "logit"), data = Day35)
ThreeandFiveandFivePredictModel=predict(ThreeFiveAndFiveThousand)
ThreeandFiveandFivePredictModel1=prediction(ThreeandFiveandFivePredictModel, Day35$FistulaPresent)
plot(performance(ThreeandFiveandFivePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreeandFiveandFivePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
ThreefiveandThreeThousand <-
glm(FistulaPresent~AmylaseCutoff300, family = binomial(link = "logit"), data = Day35)
ThreeFiveandThreePredictModel=predict(ThreefiveandThreeThousand)
ThreeFiveandThreePredictModel1=prediction(ThreeFiveandThreePredictModel, Day35$FistulaPresent)
plot(performance(ThreeFiveandThreePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreeFiveandThreePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
Day 1 Amylase cutoff 3,000
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(rms)
library(VIM)
library(pROC)
library(rmarkdown)
library(ROCR)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, day )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
sum(is.na(Oddsratio3$AmylaseDrainPod1))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
print(FRSOddsRatio1$Fistula.Grade)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSORDay1 <-
mutate(FRSOddsRatio2, AmylaseCutoff300 = ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 %in% 300:200000, ">300",
ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 %in% 0:300, "<300",
ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 ==NA, "NA"))))
FinalFRS <-
mutate(FRSORDay1, AmylaseCutoff5000 = ifelse(FRSORDay1$PAN_AMYLASE_POD230 %in% 5000:200000, ">5,000",
ifelse(FRSORDay1$PAN_AMYLASE_POD230 %in% 0:5000, "<5,000",
ifelse(FRSORDay1$PAN_AMYLASE_POD230 ==NA, "NA"))))
FinalFRS1 <-
mutate(FinalFRS, FistulaPresent = ifelse(FinalFRS$Fistula.Present == "Yes", 1,
ifelse(FinalFRS$Fistula.Present == "No", 0, NA)))
ImputedData <-
FinalFRS1 %>%
select(FistulaPresent, Day, AmylaseCutoff300, AmylaseCutoff5000)
ImputedData1 <- kNN(ImputedData)
FinalDataImputed <- subset(ImputedData1, select = FistulaPresent:AmylaseCutoff5000)
class(FinalDataImputed$Day)
Day1 <-
subset(FinalDataImputed, Day == "1")
Day35 <-
subset(FinalDataImputed, Day == "3-5")
OneandFiveThousand <-
glm(FistulaPresent~AmylaseCutoff5000, family = binomial(link = "logit"), data = Day1)
FivePredictModel=predict(OneandFiveThousand)
FivePredictModel1=prediction(FivePredictModel, Day1$FistulaPresent)
plot(performance(FivePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(FivePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
OneandThreeThousand <-
glm(FistulaPresent~AmylaseCutoff300, family = binomial(link = "logit"), data = Day1)
ThreePredictModel=predict(OneandThreeThousand)
ThreePredictModel1=prediction(ThreePredictModel, Day1$FistulaPresent)
plot(performance(ThreePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
ThreeFiveAndFiveThousand <-
glm(FistulaPresent~AmylaseCutoff5000, family = binomial(link = "logit"), data = Day35)
ThreeandFiveandFivePredictModel=predict(ThreeFiveAndFiveThousand)
ThreeandFiveandFivePredictModel1=prediction(ThreeandFiveandFivePredictModel, Day35$FistulaPresent)
plot(performance(ThreeandFiveandFivePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreeandFiveandFivePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
ThreefiveandThreeThousand <-
glm(FistulaPresent~AmylaseCutoff300, family = binomial(link = "logit"), data = Day35)
ThreeFiveandThreePredictModel=predict(ThreefiveandThreeThousand)
ThreeFiveandThreePredictModel1=prediction(ThreeFiveandThreePredictModel, Day35$FistulaPresent)
plot(performance(ThreeFiveandThreePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreeFiveandThreePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
Day 1 Amylase cutoff 5,000
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(rms)
library(VIM)
library(pROC)
library(rmarkdown)
library(ROCR)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, day )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
sum(is.na(Oddsratio3$AmylaseDrainPod1))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
print(FRSOddsRatio1$Fistula.Grade)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSORDay1 <-
mutate(FRSOddsRatio2, AmylaseCutoff300 = ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 %in% 300:200000, ">300",
ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 %in% 0:300, "<300",
ifelse(FRSOddsRatio2$PAN_AMYLASE_POD230 ==NA, "NA"))))
FinalFRS <-
mutate(FRSORDay1, AmylaseCutoff5000 = ifelse(FRSORDay1$PAN_AMYLASE_POD230 %in% 5000:200000, ">5,000",
ifelse(FRSORDay1$PAN_AMYLASE_POD230 %in% 0:5000, "<5,000",
ifelse(FRSORDay1$PAN_AMYLASE_POD230 ==NA, "NA"))))
FinalFRS1 <-
mutate(FinalFRS, FistulaPresent = ifelse(FinalFRS$Fistula.Present == "Yes", 1,
ifelse(FinalFRS$Fistula.Present == "No", 0, NA)))
ImputedData <-
FinalFRS1 %>%
select(FistulaPresent, Day, AmylaseCutoff300, AmylaseCutoff5000)
ImputedData1 <- kNN(ImputedData)
FinalDataImputed <- subset(ImputedData1, select = FistulaPresent:AmylaseCutoff5000)
class(FinalDataImputed$Day)
Day1 <-
subset(FinalDataImputed, Day == "1")
Day35 <-
subset(FinalDataImputed, Day == "3-5")
OneandFiveThousand <-
glm(FistulaPresent~AmylaseCutoff5000, family = binomial(link = "logit"), data = Day1)
FivePredictModel=predict(OneandFiveThousand)
FivePredictModel1=prediction(FivePredictModel, Day1$FistulaPresent)
plot(performance(FivePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(FivePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
OneandThreeThousand <-
glm(FistulaPresent~AmylaseCutoff300, family = binomial(link = "logit"), data = Day1)
ThreePredictModel=predict(OneandThreeThousand)
ThreePredictModel1=prediction(ThreePredictModel, Day1$FistulaPresent)
plot(performance(ThreePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
ThreeFiveAndFiveThousand <-
glm(FistulaPresent~AmylaseCutoff5000, family = binomial(link = "logit"), data = Day35)
ThreeandFiveandFivePredictModel=predict(ThreeFiveAndFiveThousand)
ThreeandFiveandFivePredictModel1=prediction(ThreeandFiveandFivePredictModel, Day35$FistulaPresent)
plot(performance(ThreeandFiveandFivePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreeandFiveandFivePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
ThreefiveandThreeThousand <-
glm(FistulaPresent~AmylaseCutoff300, family = binomial(link = "logit"), data = Day35)
ThreeFiveandThreePredictModel=predict(ThreefiveandThreeThousand)
ThreeFiveandThreePredictModel1=prediction(ThreeFiveandThreePredictModel, Day35$FistulaPresent)
plot(performance(ThreeFiveandThreePredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(ThreeFiveandThreePredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
Textbook Outcomes in Pancreatic & Hepatic Cancer
---
title: "Textbook Outcomes in Pancreatic Cancer"
author: "Abdimajid Mohamed"
date: "2/24/2021"
output: html_document
---
```{r}
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(VIM)
```
```{r}
load("TextbookOutcomes.RData")
```
```{r}
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, Age = ifelse(Age >= 85, "85+",
ifelse(Age >= 75, "75-84",
ifelse(Age >= 65, "65-74",
ifelse(Age >=0, "0-65", NA)))))
```
```{r}
### Recoding mortality
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == -99] <- "No"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 0] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 1] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 2] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 3] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 4] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 5] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 6] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 7] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 8] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 9] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 10] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 11] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 12] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 13] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 14] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 15] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 16] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 17] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 18] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 19] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 20] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 21] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 22] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 23] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 24] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 25] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 26] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 27] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 28] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 29] <- "Yes"
TextbookOutcomes$DOpertoD[TextbookOutcomes$DOpertoD == 30] <- "Yes"
```
```{r}
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "EXCISION AMPULLA VATER"] <- NA
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "EXCISION LESION PANCREAS"] <- NA
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "UNLISTED PROCEDURE PANCREAS"] <- NA
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT WHIPPLE W/O PANCREATOJEJUNOSTOMY"] <- "Whipple"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT W/PANCREATOJEJUNOSTOMY"] <- "Whipple"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT DSTL STOT W/PNCRTCOJEJUNOSTOMY"] <- "Distal Pancreatectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT DSTL STOT W/O PNCRTCOJEJUNOSTOMY"] <- "Distal Pancreatectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT PROX STOT W/PANCREATOJEJUNOSTOMY"] <- "Whipple"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT PROX STOT W/O PANCREATOJEJUNOSTOMY"] <- "Whipple"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PANCREATECTOMY TOTAL"] <- "Total Pancreatectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "PNCRTECT DSTL NR-TOT W/PRSRV DUO CHLD-TYP PX"] <- "Total Pancreatectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "HEPATECTOMY RESCJ PARTIAL LOBECTOMY"] <- "Partial Lobectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "HEPATECTOMY RESCJ TOTAL LEFT LOBECTOMY"] <- "Lobectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "HEPATECTOMY RESCJ TOTAL RIGHT LOBECTOMY"] <- "Lobectomy"
TextbookOutcomes$PRNCPTX[TextbookOutcomes$PRNCPTX == "HEPATECTOMY RESCJ TRISEGMENTECTOMY"] <- "Trisegmentectomy"
table(TextbookOutcomes$PRNCPTX)
```
```{r}
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, PatientGroup = ifelse(PRNCPTX == "Partial Lobectomy", "Liver",
ifelse(PRNCPTX == "Lobectomy", "Liver",
ifelse(PRNCPTX == "Trisegmentectomy", "Liver",
ifelse(PRNCPTX == "Whipple", "Pancreas",
ifelse(PRNCPTX == "Distal Pancreatectomy", "Pancreas",
ifelse(PRNCPTX == "Total Pancreatectomy", "Pancreas", NA)))))))
```
```{r}
### Recoding readmission
TextbookOutcomes$READMISSION1[TextbookOutcomes$READMISSION1 == "NULL"] <- NA
TextbookOutcomes$READMISSION1[TextbookOutcomes$READMISSION1 == "NULL"] <- NA
table(TextbookOutcomes$READMISSION1)
```
```{r}
## recoding -99 to NA's for length of stay. LOS considered >75th% other papers state median LOS for pancreatic cancer 7 days
TextbookOutcomes$DOptoDis[TextbookOutcomes$DOptoDis == -99] <- NA
table(TextbookOutcomes$PRNCPTX)
```
```{r}
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "American Indian or Alaska Native"] <- "Other"
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "Asian"] <- "Other"
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "Native Hawaiian or Pacific Islander"] <- "Other"
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "Black or African American"] <- "Black"
TextbookOutcomes$RACE_NEW[TextbookOutcomes$RACE_NEW == "Unknown/Not Reported"] <- NA
```
```{r}
TextbookOutcomes$WEIGHT[TextbookOutcomes$WEIGHT ==-99] <- NA
TextbookOutcomes$HEIGHT[TextbookOutcomes$HEIGHT ==-99] <- NA
```
```{r}
TextbookOutcomes$BMI <- (TextbookOutcomes$WEIGHT / TextbookOutcomes$HEIGHT / TextbookOutcomes$HEIGHT) *703
```
```{r}
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, BMILabled = ifelse(BMI >= 40, "Morbidly Obese",
ifelse(BMI >= 30, "Obese",
ifelse(BMI >= 25, "Overweight",
ifelse(BMI >=18.5, "Normal Weight",
ifelse(BMI <= 18.49, "Underweight", NA))))))
```
```{r}
TextbookOutcomes$ASACLAS[TextbookOutcomes$ASACLAS == "5-Moribund"] <- NA
TextbookOutcomes$ASACLAS[TextbookOutcomes$ASACLAS == "None assigned"] <- NA
```
```{r}
### Create MFI column
TextbookOutcomes$DIABETES[TextbookOutcomes$DIABETES == "INSULIN"] <- "Yes"
TextbookOutcomes$DIABETES[TextbookOutcomes$DIABETES == "NON-INSULIN"] <- "Yes"
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
##Diabeties recoded for MFI
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, Diabetes1 = ifelse(DIABETES == "INSULIN", "Yes",
ifelse(DIABETES == "NON-INSULIN", "Yes",
ifelse(DIABETES == "NO", "No", "NA"))))
```
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
###CHF recoded for MFI
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, CHFMFI = ifelse(HXCHF == "Yes", "1",
ifelse(HXCHF == "No", "0", "NA")))
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
### COPD recoded for MFI
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, COPDMFI = ifelse(HXCOPD == "Yes", "1",
ifelse(HXCOPD == "No", "0", "NA")))
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
### Hypertension with medications recoded for MFI
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, HYPERMEDMFI = ifelse(HYPERMED == "Yes", "1",
ifelse(HYPERMED == "No", "0", "NA")))
```{r}
##recode fnstatus2
TextbookOutcomes$FNSTATUS2[TextbookOutcomes$FNSTATUS2 == "Unknown"] <- NA
```
TextbookOutcomes <-
TextbookOutcomes %>%
mutate(TextbookOutcomes, FuncStatus = ifelse(FNSTATUS2 == "Yes", "1",
ifelse(FNSTATUS2 == "No", "0", NA)))
##making the columns numeric to add them properly
TextbookOutcomes$HYPERMEDMFI <- as.numeric(TextbookOutcomes$HYPERMEDMFI)
TextbookOutcomes$COPDMFI <- as.numeric(TextbookOutcomes$COPDMFI)
TextbookOutcomes$CHFMFI <- as.numeric(TextbookOutcomes$CHFMFI)
TextbookOutcomes$DiabetesMFI <- as.numeric(TextbookOutcomes$DiabetesMFI)
TextbookOutcomes$FuncStatus <- as.numeric(TextbookOutcomes$FuncStatus)
###Creating MFI column
TextbookOutcomes$MFI5 <- (TextbookOutcomes$HYPERMEDMFI + TextbookOutcomes$COPDMFI + TextbookOutcomes$CHFMFI + TextbookOutcomes$DiabetesMFI + TextbookOutcomes$FuncStatus )
```{r}
##recoding Hep and Pan targeted Complications to yes or no (will need to add in targeted complications Pan: Fistula, Delayed Gastric Emptying and what about percdrain? | Hep: Bile leakage, hepliverfail)
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Biochemical Leak only"] <- "No"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes, Grade B POPF present"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes, Grade C POPF present"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "Yes"
TextbookOutcomes$PAN_FISTULA[TextbookOutcomes$PAN_FISTULA =="Unknown"] <- NA
####Delayed Gastric Emptying Recode to yes or no
TextbookOutcomes$PAN_DELGASTRIC_20140315[TextbookOutcomes$PAN_DELGASTRIC_20140315 =="Yes-no oral intake by POD 14"] <- "Yes"
TextbookOutcomes$PAN_DELGASTRIC_20140315[TextbookOutcomes$PAN_DELGASTRIC_20140315 =="Yes-tube to external drainage/NG tube present/reinserted"] <- "Yes"
TextbookOutcomes$PAN_DELGASTRIC_20140315[TextbookOutcomes$PAN_DELGASTRIC_20140315 =="Unknown"] <- NA
###recoding Hep targeted complications bileleakage
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Unknown"] <- NA
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-clinical diagnosis, drain continued on or after POD3"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-clinical diagnosis, reoperation performed"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-persistent drainage, drain continued on or after POD3"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-persistent drainage, percutaneous drainage performed"] <- "Yes"
TextbookOutcomes$HEP_BILELEAKAGE[TextbookOutcomes$HEP_BILELEAKAGE =="Yes-persistent drainage, reoperation performed"] <- "Yes"
##recoding hep targeted complications Liver failure (Post Hepatectomy Liver Failure)
TextbookOutcomes$HEP_LIVERFAIL[TextbookOutcomes$HEP_LIVERFAIL =="Yes-PHLF (receiving clotting factors to maintain INR)"] <- "Yes"
TextbookOutcomes$HEP_LIVERFAIL[TextbookOutcomes$HEP_LIVERFAIL =="Yes-meets criteria for PHLF"] <- "Yes"
TextbookOutcomes$HEP_LIVERFAIL[TextbookOutcomes$HEP_LIVERFAIL =="No-does not meet criteria for PHLF"] <- "No"
table(TextbookOutcomes$HEP_LIVERFAIL)
```
```{r}
table(TextbookOutcomes$PRNCPTX)
```
```{r}
###Creating Targeted Column for Hep Complications
TextbookOutcomes1 <- TextbookOutcomes %>%
mutate(TextbookOutcomes, HepComplications = ifelse(HEP_LIVERFAIL == "Yes", "Yes",
ifelse(HEP_BILELEAKAGE == "Yes", "Yes", "No")))
table(TextbookOutcomes1$HepComplications)
```
```{r}
###Creating Targeted Column for Hep Complications
TextbookOutcomes2 <- TextbookOutcomes1 %>%
mutate(TextbookOutcomes, PanComplications = ifelse(PAN_FISTULA == "Yes", "Yes",
ifelse(PAN_DELGASTRIC_20140315 == "Yes", "Yes", "No")))
str(TextbookOutcomes2$PanComplications)
sum(is.na(TextbookOutcomes2$PanComplications))
```
```{r}
###creating a true textbookoutcomes column for pan and liver
TextbookOutcomes2$PanComplications[TextbookOutcomes2$PanComplications ==NA] <- "NA"
TextbookOutcomes2$PanComplications[TextbookOutcomes2$HepComplications ==NA] <- "NA"
table(TextbookOutcomes2$PanComplications)
TextbookOutcomes2$PanComplications[TextbookOutcomes2$PanComplications ==NA] <- "NA"
sum(is.na(TextbookOutcomes2$PanComplications))
table(is.na(TextbookOutcomes2$PanComplications))
```
```{r}
### Ifelse function to create new column for any complication (will need to add in targeted complications Pan: Fistula, Delayed Gastric Emptying | Hep: Bile leakage, hepliverfail)
TextbookOutcomes3 <- TextbookOutcomes2 %>%
mutate(TextbookOutcomes, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
```
```{r}
##subsetting Procedure with DoptoDIS information to obtain the mean
TextbookOutcomesDistalPan <-
subset(TextbookOutcomes, PRNCPTX == "Distal Pancreatectomy")
TextbookOutcomesLobectomy <-
subset(TextbookOutcomes, PRNCPTX == "Lobectomy")
TextbookOutcomesOtherPan <-
subset(TextbookOutcomes, PRNCPTX == "Other Pancreas")
TextbookOutcomesPartialLobectomy <-
subset(TextbookOutcomes, PRNCPTX == "Partial Lobectomy")
TextbookOutcomesTotalPan <-
subset(TextbookOutcomes, PRNCPTX == "Total Pancreatectomy")
TextbookOutcomesTrisegmentectomy <-
subset(TextbookOutcomes, PRNCPTX == "Trisegmentectomy")
TextbookOutcomesWhipple <-
subset(TextbookOutcomes, PRNCPTX == "Whipple")
```
```{r}
###obtaining the 75th percential for LOS defined as day of surgery to date of discharge
SeventyFifthPercentileDistalPan = TextbookOutcomesDistalPan$DOptoDis
SeventyFifthPercentileLobectomy = TextbookOutcomesLobectomy$DOptoDis
SeventyFifthPercentileOtherPan = TextbookOutcomesOtherPan$DOptoDis
SeventyFifthPercentilePartialLobectomy = TextbookOutcomesPartialLobectomy$DOptoDis
SeventyFifthPercentileTotalPan = TextbookOutcomesTotalPan$DOptoDis
SeventyFifthPercentileTrisegmentectomy = TextbookOutcomesTrisegmentectomy$DOptoDis
SeventyFifthPercentileWhipple = TextbookOutcomesWhipple$DOptoDis
quantile(SeventyFifthPercentileDistalPan, na.rm = T)
quantile(SeventyFifthPercentileLobectomy, na.rm = T)
quantile(SeventyFifthPercentileOtherPan, na.rm = T)
quantile(SeventyFifthPercentilePartialLobectomy, na.rm = T)
quantile(SeventyFifthPercentileTotalPan, na.rm = T)
quantile(SeventyFifthPercentileTrisegmentectomy, na.rm = T)
quantile(SeventyFifthPercentileWhipple, na.rm = T)
```
```{r}
TextbookOutcomes3$ELOSDistalPan <- ifelse(TextbookOutcomes3$PRNCPTX == "Distal Pancreatectomy" & TextbookOutcomes3$DOptoDis >= 7, "Yes", "No")
TextbookOutcomes3$ELOSLobectomy <- ifelse(TextbookOutcomes3$PRNCPTX == "Lobectomy" & TextbookOutcomes3$DOptoDis >= 8, "Yes", "No")
TextbookOutcomes3$ELOSOtherPan <- ifelse(TextbookOutcomes3$PRNCPTX == "Other Pancreas" & TextbookOutcomes3$DOptoDis >= 7, "Yes", "No")
TextbookOutcomes3$ELOSPartial <- ifelse(TextbookOutcomes3$PRNCPTX == "Partial Lobectomy" & TextbookOutcomes3$DOptoDis >= 6, "Yes", "No")
TextbookOutcomes3$ELOSTotal <- ifelse(TextbookOutcomes3$PRNCPTX == "Total Pancreatectomy" & TextbookOutcomes3$DOptoDis >= 12, "Yes", "No")
TextbookOutcomes3$ELOSTrisegmentectomy <- ifelse(TextbookOutcomes3$PRNCPTX == "Trisegmentectomy" & TextbookOutcomes3$DOptoDis >= 10, "Yes", "No")
TextbookOutcomes3$ELOSWhipple <- ifelse(TextbookOutcomes3$PRNCPTX == "Whipple" & TextbookOutcomes3$DOptoDis >= 12, "Yes", "No")
table(TextbookOutcomes3$ELOSPartial)
```
```{r}
###recode 9 and up to be considered increased LOS
PanTextbookOutcomes <- TextbookOutcomes3 %>%
mutate(TextbookOutcomes3, ELOS = ifelse(ELOSDistalPan == "Yes", "Yes",
ifelse(ELOSLobectomy == "Yes", "Yes",
ifelse(ELOSOtherPan == "Yes", "Yes",
ifelse(ELOSPartial == "Yes", "Yes",
ifelse(ELOSTotal == "Yes", "Yes",
ifelse(ELOSTrisegmentectomy == "Yes", "Yes",
ifelse(ELOSWhipple == "Yes", "Yes", "No"))))))))
table(PanTextbookOutcomes$ELOS)
```
###subset pancreatic cancer patients prior to creating a Textbook Outcomes Table double the 75th percentile number afterwards
PanTextbookOutcomes <-
subset(TextbookOutcomes4, PanComplications == "Yes" | PanComplications == "No")
table(PanTextbookOutcomes$HepComplications)
```{r}
PanTextbookOutcomes$TextbookOutcomeHep <- ifelse(PanTextbookOutcomes$ELOS == "No" & PanTextbookOutcomes$DOpertoD == "No" & PanTextbookOutcomes$HepComplications == "No" & PanTextbookOutcomes$AnyComplication == "No" & PanTextbookOutcomes$READMISSION1 == "No",
"Yes",
"No")
PanTextbookOutcomes$TextbookOutcomePan <- ifelse(PanTextbookOutcomes$ELOS == "No" & PanTextbookOutcomes$DOpertoD == "No" & PanTextbookOutcomes$PanComplications == "No" & PanTextbookOutcomes$AnyComplication == "No" & PanTextbookOutcomes$READMISSION1 == "No",
"Yes",
"No")
PanTextbookOutcomes$TextbookOutcomeAll <- ifelse(PanTextbookOutcomes$TextbookOutcomePan == "No" & PanTextbookOutcomes$TextbookOutcomeHep == "No",
"No",
"Yes")
table(PanTextbookOutcomes$TextbookOutcomeHep)
table(PanTextbookOutcomes$TextbookOutcomePan)
table(PanTextbookOutcomes$TextbookOutcomeAll)
```
PanTextbookOutcomes3 <-
PanTextbookOutcomes %>%
mutate(PanTextbookOutcomes, TextbookOutcomeAll = ifelse(TextbookOutcomePan == NA, "Yes",
ifelse(TextbookOutcomeHep == "Yes", "Yes","NA")))
table(PanTextbookOutcomes3$TextbookOutcomeAll)
PanTextbookOutcomes1 <-
PanTextbookOutcomes %>%
mutate(PanTextbookOutcomes, ModifiedFrailtyIndex5 = ifelse(MFI5 == 0, "0",
ifelse(MFI5 == 1, "1",
ifelse(MFI5 > 2, ">2", NA))))
```{r}
PantextBookOutcomesDT <-
PanTextbookOutcomes %>%
select(PRNCPTX, PatientGroup, Age, SEX, RACE_NEW, BMILabled, ASACLAS, DOpertoD, OPTIME, ELOS, READMISSION1, STEROID, DIABETES, HYPERMED, ASACLAS, ASCITES, HXCHF, DYSPNEA, SMOKE, HXCOPD, DIALYSIS, OPRENAFL, DISCANCR, FNSTATUS2, AnyComplication, TextbookOutcomeHep, TextbookOutcomePan, TextbookOutcomeAll, PanComplications, HepComplications)
table(PantextBookOutcomesDT$PatientGroup)
```
```{r}
PantextBookOutcomesDT %>%
tbl_summary(
by = PatientGroup,
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") ~ "**Textbook Outcomes*") %>%
bold_labels()
```
```{r}
TextbookOutcomeOR <-
PantextBookOutcomesDT %>%
select(PRNCPTX, PatientGroup, Age, SEX, RACE_NEW, BMILabled, ASACLAS, DOpertoD, OPTIME, ELOS, READMISSION1, STEROID, DIABETES, HYPERMED, ASACLAS, ASCITES, HXCHF, DYSPNEA, SMOKE, HXCOPD, DIALYSIS, OPRENAFL, DISCANCR, FNSTATUS2, AnyComplication, TextbookOutcomeHep, TextbookOutcomePan, TextbookOutcomeAll, PanComplications, HepComplications)
```
```{r Create the binary outcome}
TextbookOutcomeOR <- TextbookOutcomeOR %>%
mutate(TextbookOutcomeOR, TextbookOutcomePanOR = ifelse(TextbookOutcomePan =="Yes", "1",
ifelse(TextbookOutcomePan =="No", "0", NA)))
TextbookOutcomeOR$TextbookOutcomePanOR <- as.numeric(TextbookOutcomeOR$TextbookOutcomePanOR)
TextbookOutcomeOR <- TextbookOutcomeOR %>%
mutate(TextbookOutcomeOR, TextbookOutcomeHepOR = ifelse(TextbookOutcomeHep =="Yes", "1",
ifelse(TextbookOutcomeHep =="No", "0", NA)))
TextbookOutcomeOR <- TextbookOutcomeOR %>%
mutate(TextbookOutcomeOR, TextbookOutcomeAllOR = ifelse(TextbookOutcomeAll =="Yes", "1",
ifelse(TextbookOutcomeAll =="No", "0", NA)))
TextbookOutcomeOR$TextbookOutcomeHepOR <- as.numeric(TextbookOutcomeOR$TextbookOutcomeHepOR)
TextbookOutcomeOR$TextbookOutcomeAllOR <- as.numeric(TextbookOutcomeOR$TextbookOutcomeAllOR)
TextbookOutcomeOR$TextbookOutcomePanOR <- as.numeric(TextbookOutcomeOR$TextbookOutcomePanOR)
```
```{r}
PanTextbookOutcomesSubset <-
subset(TextbookOutcomeOR, PatientGroup == "Pancreas")
```
```{r}
HepTextbookOutcomesSubset <-
subset(TextbookOutcomeOR, PatientGroup == "Liver")
table(PanTextbookOutcomesSubset$TextbookOutcomePanOR)
```
```{r}
###changling the referent level
PanTextbookOutcomesSubset$PRNCPTX <- as.factor(PanTextbookOutcomesSubset$PRNCPTX)
PanTextbookOutcomesSubset$SEX <- as.factor(PanTextbookOutcomesSubset$SEX)
PanTextbookOutcomesSubset$ASACLAS <- as.factor(PanTextbookOutcomesSubset$ASACLAS)
PanTextbookOutcomesSubset$BMILabled <- as.factor(PanTextbookOutcomesSubset$BMILabled)
PanTextbookOutcomesSubset$STEROID <- as.factor(PanTextbookOutcomesSubset$STEROID)
PanTextbookOutcomesSubset$DIABETES <- as.factor(PanTextbookOutcomesSubset$DIABETES)
PanTextbookOutcomesSubset$HYPERMED <- as.factor(PanTextbookOutcomesSubset$HYPERMED)
PanTextbookOutcomesSubset$ASCITES <- as.factor(PanTextbookOutcomesSubset$ASCITES)
PanTextbookOutcomesSubset$HXCOPD <- as.factor(PanTextbookOutcomesSubset$HXCOPD)
PanTextbookOutcomesSubset$DIALYSIS <- as.factor(PanTextbookOutcomesSubset$DIALYSIS)
PanTextbookOutcomesSubset$DISCANCR <- as.factor(PanTextbookOutcomesSubset$DISCANCR)
PanTextbookOutcomesSubset$HXCHF <- as.factor(PanTextbookOutcomesSubset$HXCHF)
PanTextbookOutcomesSubset$Age <- as.factor(PanTextbookOutcomesSubset$Age)
PanTextbookOutcomesSubset$FNSTATUS2 <- as.factor(PanTextbookOutcomesSubset$FNSTATUS2)
PanTextbookOutcomesSubset$SMOKE <- as.factor(PanTextbookOutcomesSubset$SMOKE)
PanTextbookOutcomesSubset$PatientGroup <- as.factor(PanTextbookOutcomesSubset$PatientGroup)
PanTextbookOutcomesSubset$PRNCPTX = relevel(PanTextbookOutcomesSubset$PRNCPTX, ref="Distal Pancreatectomy")
PanTextbookOutcomesSubset$SEX = relevel(PanTextbookOutcomesSubset$SEX, ref="male")
PanTextbookOutcomesSubset$BMILabled = relevel(PanTextbookOutcomesSubset$BMILabled, ref="Normal Weight")
PanTextbookOutcomesSubset$ASACLAS = relevel(PanTextbookOutcomesSubset$ASACLAS, ref="4-Life Threat")
PanTextbookOutcomesSubset$DIABETES = relevel(PanTextbookOutcomesSubset$DIABETES, ref="NO")
PanTextbookOutcomesSubset$HYPERMED = relevel(PanTextbookOutcomesSubset$HYPERMED, ref="Yes")
PanTextbookOutcomesSubset$STEROID = relevel(PanTextbookOutcomesSubset$STEROID, ref="Yes")
PanTextbookOutcomesSubset$ASCITES = relevel(PanTextbookOutcomesSubset$ASCITES, ref="Yes")
PanTextbookOutcomesSubset$HXCOPD = relevel(PanTextbookOutcomesSubset$HXCOPD, ref="Yes")
PanTextbookOutcomesSubset$DIALYSIS = relevel(PanTextbookOutcomesSubset$DIALYSIS, ref="Yes")
PanTextbookOutcomesSubset$SMOKE = relevel(PanTextbookOutcomesSubset$SMOKE, ref="No")
PanTextbookOutcomesSubset$DISCANCR = relevel(PanTextbookOutcomesSubset$DISCANCR, ref="Yes")
PanTextbookOutcomesSubset$HXCHF = relevel(PanTextbookOutcomesSubset$HXCHF, ref="Yes")
PanTextbookOutcomesSubset$Age = relevel(PanTextbookOutcomesSubset$Age, ref="85+")
PanTextbookOutcomesSubset$FNSTATUS2 = relevel(PanTextbookOutcomesSubset$FNSTATUS2, ref="Totally Dependent")
```
```{r Univariant analysis Pan}
UVPan <- PanTextbookOutcomesSubset %>%
select(PRNCPTX, Age, SEX, RACE_NEW, BMILabled, ASACLAS, STEROID, ASCITES, DYSPNEA, SMOKE, DIALYSIS, DISCANCR, DIABETES, HYPERMED, HXCOPD, HXCHF, TextbookOutcomePanOR) %>%
tbl_uvregression(
method = glm,
y = TextbookOutcomePanOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changling the referent level
PanTextbookOutcomesSubset$PRNCPTX <- as.factor(PanTextbookOutcomesSubset$PRNCPTX)
PanTextbookOutcomesSubset$SEX <- as.factor(PanTextbookOutcomesSubset$SEX)
PanTextbookOutcomesSubset$ASACLAS <- as.factor(PanTextbookOutcomesSubset$ASACLAS)
PanTextbookOutcomesSubset$BMILabled <- as.factor(PanTextbookOutcomesSubset$BMILabled)
PanTextbookOutcomesSubset$STEROID <- as.factor(PanTextbookOutcomesSubset$STEROID)
PanTextbookOutcomesSubset$DIABETES <- as.factor(PanTextbookOutcomesSubset$DIABETES)
PanTextbookOutcomesSubset$HYPERMED <- as.factor(PanTextbookOutcomesSubset$HYPERMED)
PanTextbookOutcomesSubset$ASCITES <- as.factor(PanTextbookOutcomesSubset$ASCITES)
PanTextbookOutcomesSubset$HXCOPD <- as.factor(PanTextbookOutcomesSubset$HXCOPD)
PanTextbookOutcomesSubset$DIALYSIS <- as.factor(PanTextbookOutcomesSubset$DIALYSIS)
PanTextbookOutcomesSubset$DISCANCR <- as.factor(PanTextbookOutcomesSubset$DISCANCR)
PanTextbookOutcomesSubset$HXCHF <- as.factor(PanTextbookOutcomesSubset$HXCHF)
PanTextbookOutcomesSubset$Age <- as.factor(PanTextbookOutcomesSubset$Age)
PanTextbookOutcomesSubset$FNSTATUS2 <- as.factor(PanTextbookOutcomesSubset$FNSTATUS2)
PanTextbookOutcomesSubset$PatientGroup <- as.factor(PanTextbookOutcomesSubset$PatientGroup)
PanTextbookOutcomesSubset$PRNCPTX = relevel(PanTextbookOutcomesSubset$PRNCPTX, ref="Distal Pancreatectomy")
PanTextbookOutcomesSubset$SEX = relevel(PanTextbookOutcomesSubset$SEX, ref="male")
PanTextbookOutcomesSubset$ASACLAS = relevel(PanTextbookOutcomesSubset$ASACLAS, ref="4-Life Threat")
PanTextbookOutcomesSubset$BMILabled = relevel(PanTextbookOutcomesSubset$BMILabled, ref="Normal Weight")
PanTextbookOutcomesSubset$DIABETES = relevel(PanTextbookOutcomesSubset$DIABETES, ref="NO")
PanTextbookOutcomesSubset$HYPERMED = relevel(PanTextbookOutcomesSubset$HYPERMED, ref="Yes")
PanTextbookOutcomesSubset$STEROID = relevel(PanTextbookOutcomesSubset$STEROID, ref="Yes")
PanTextbookOutcomesSubset$ASCITES = relevel(PanTextbookOutcomesSubset$ASCITES, ref="Yes")
PanTextbookOutcomesSubset$HXCOPD = relevel(PanTextbookOutcomesSubset$HXCOPD, ref="Yes")
PanTextbookOutcomesSubset$DIALYSIS = relevel(PanTextbookOutcomesSubset$DIALYSIS, ref="Yes")
PanTextbookOutcomesSubset$DISCANCR = relevel(PanTextbookOutcomesSubset$DISCANCR, ref="Yes")
PanTextbookOutcomesSubset$HXCHF = relevel(PanTextbookOutcomesSubset$HXCHF, ref="Yes")
PanTextbookOutcomesSubset$Age = relevel(PanTextbookOutcomesSubset$Age, ref="85+")
PanTextbookOutcomesSubset$FNSTATUS2 = relevel(PanTextbookOutcomesSubset$FNSTATUS2, ref="Totally Dependent")
```
```{r}
####Multivariant analysis serious complications
MVORPan <-
glm(TextbookOutcomePanOR ~ PRNCPTX + Age + SEX + RACE_NEW + BMILabled + ASACLAS + STEROID + ASCITES + DYSPNEA + SMOKE + DIALYSIS + DISCANCR + DIABETES + HYPERMED + HXCOPD + HXCHF,
data = PanTextbookOutcomesSubset,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###continue on to merge the table sets
MVORTablePan <-
tbl_regression(MVORPan, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
tbl_merge(
list(UVPan, MVORTablePan),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changling the referent level
HepTextbookOutcomesSubset$PRNCPTX <- as.factor(HepTextbookOutcomesSubset$PRNCPTX)
HepTextbookOutcomesSubset$SEX <- as.factor(HepTextbookOutcomesSubset$SEX)
HepTextbookOutcomesSubset$BMILabled <- as.factor(HepTextbookOutcomesSubset$BMILabled)
HepTextbookOutcomesSubset$ASACLAS <- as.factor(HepTextbookOutcomesSubset$ASACLAS)
HepTextbookOutcomesSubset$STEROID <- as.factor(HepTextbookOutcomesSubset$STEROID)
HepTextbookOutcomesSubset$DIABETES <- as.factor(HepTextbookOutcomesSubset$DIABETES)
HepTextbookOutcomesSubset$HYPERMED <- as.factor(HepTextbookOutcomesSubset$HYPERMED)
HepTextbookOutcomesSubset$ASCITES <- as.factor(HepTextbookOutcomesSubset$ASCITES)
HepTextbookOutcomesSubset$HXCOPD <- as.factor(HepTextbookOutcomesSubset$HXCOPD)
HepTextbookOutcomesSubset$DIALYSIS <- as.factor(HepTextbookOutcomesSubset$DIALYSIS)
HepTextbookOutcomesSubset$DISCANCR <- as.factor(HepTextbookOutcomesSubset$DISCANCR)
HepTextbookOutcomesSubset$HXCHF <- as.factor(HepTextbookOutcomesSubset$HXCHF)
HepTextbookOutcomesSubset$SMOKE <- as.factor(HepTextbookOutcomesSubset$SMOKE)
HepTextbookOutcomesSubset$Age <- as.factor(HepTextbookOutcomesSubset$Age)
HepTextbookOutcomesSubset$PRNCPTX = relevel(HepTextbookOutcomesSubset$PRNCPTX, ref="Trisegmentectomy")
HepTextbookOutcomesSubset$SEX = relevel(HepTextbookOutcomesSubset$SEX, ref="male")
HepTextbookOutcomesSubset$BMILabled = relevel(HepTextbookOutcomesSubset$BMILabled, ref="Normal Weight")
HepTextbookOutcomesSubset$ASACLAS = relevel(HepTextbookOutcomesSubset$ASACLAS, ref="4-Life Threat")
HepTextbookOutcomesSubset$DIABETES = relevel(HepTextbookOutcomesSubset$DIABETES, ref="Yes")
HepTextbookOutcomesSubset$HYPERMED = relevel(HepTextbookOutcomesSubset$HYPERMED, ref="Yes")
HepTextbookOutcomesSubset$STEROID = relevel(HepTextbookOutcomesSubset$STEROID, ref="Yes")
HepTextbookOutcomesSubset$ASCITES = relevel(HepTextbookOutcomesSubset$ASCITES, ref="Yes")
HepTextbookOutcomesSubset$HXCOPD = relevel(HepTextbookOutcomesSubset$HXCOPD, ref="Yes")
HepTextbookOutcomesSubset$DIALYSIS = relevel(HepTextbookOutcomesSubset$DIALYSIS, ref="Yes")
HepTextbookOutcomesSubset$DISCANCR = relevel(HepTextbookOutcomesSubset$DISCANCR, ref="Yes")
HepTextbookOutcomesSubset$HXCHF = relevel(HepTextbookOutcomesSubset$HXCHF, ref="Yes")
HepTextbookOutcomesSubset$SMOKE = relevel(HepTextbookOutcomesSubset$SMOKE, ref="Yes")
HepTextbookOutcomesSubset$Age = relevel(HepTextbookOutcomesSubset$Age, ref="85+")
```
```{r Univariant analysis Hep}
UVHep <- HepTextbookOutcomesSubset %>%
select(PRNCPTX, Age, SEX, RACE_NEW, BMILabled, ASACLAS, STEROID, ASCITES, DYSPNEA, SMOKE, DIALYSIS, DISCANCR, DIABETES, HYPERMED, HXCOPD, HXCHF, TextbookOutcomeHepOR) %>%
tbl_uvregression(
method = glm,
y = TextbookOutcomeHepOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
HepTextbookOutcomesSubset$PRNCPTX <- as.factor(HepTextbookOutcomesSubset$PRNCPTX)
HepTextbookOutcomesSubset$BMILabled <- as.factor(HepTextbookOutcomesSubset$BMILabled)
HepTextbookOutcomesSubset$ASACLAS <- as.factor(HepTextbookOutcomesSubset$ASACLAS)
HepTextbookOutcomesSubset$STEROID <- as.factor(HepTextbookOutcomesSubset$STEROID)
HepTextbookOutcomesSubset$DIABETES <- as.factor(HepTextbookOutcomesSubset$DIABETES)
HepTextbookOutcomesSubset$HYPERMED <- as.factor(HepTextbookOutcomesSubset$HYPERMED)
HepTextbookOutcomesSubset$ASCITES <- as.factor(HepTextbookOutcomesSubset$ASCITES)
HepTextbookOutcomesSubset$HXCOPD <- as.factor(HepTextbookOutcomesSubset$HXCOPD)
HepTextbookOutcomesSubset$DIALYSIS <- as.factor(HepTextbookOutcomesSubset$DIALYSIS)
HepTextbookOutcomesSubset$DISCANCR <- as.factor(HepTextbookOutcomesSubset$DISCANCR)
HepTextbookOutcomesSubset$HXCHF <- as.factor(HepTextbookOutcomesSubset$HXCHF)
HepTextbookOutcomesSubset$SMOKE <- as.factor(HepTextbookOutcomesSubset$SMOKE)
HepTextbookOutcomesSubset$Age <- as.factor(HepTextbookOutcomesSubset$Age)
HepTextbookOutcomesSubset$PRNCPTX = relevel(HepTextbookOutcomesSubset$PRNCPTX, ref="Trisegmentectomy")
HepTextbookOutcomesSubset$BMILabled = relevel(HepTextbookOutcomesSubset$BMILabled, ref="Normal Weight")
HepTextbookOutcomesSubset$ASACLAS = relevel(HepTextbookOutcomesSubset$ASACLAS, ref="4-Life Threat")
HepTextbookOutcomesSubset$DIABETES = relevel(HepTextbookOutcomesSubset$DIABETES, ref="Yes")
HepTextbookOutcomesSubset$HYPERMED = relevel(HepTextbookOutcomesSubset$HYPERMED, ref="Yes")
HepTextbookOutcomesSubset$STEROID = relevel(HepTextbookOutcomesSubset$STEROID, ref="Yes")
HepTextbookOutcomesSubset$ASCITES = relevel(HepTextbookOutcomesSubset$ASCITES, ref="Yes")
HepTextbookOutcomesSubset$HXCOPD = relevel(HepTextbookOutcomesSubset$HXCOPD, ref="Yes")
HepTextbookOutcomesSubset$DIALYSIS = relevel(HepTextbookOutcomesSubset$DIALYSIS, ref="Yes")
HepTextbookOutcomesSubset$DISCANCR = relevel(HepTextbookOutcomesSubset$DISCANCR, ref="Yes")
HepTextbookOutcomesSubset$HXCHF = relevel(HepTextbookOutcomesSubset$HXCHF, ref="Yes")
HepTextbookOutcomesSubset$SMOKE = relevel(HepTextbookOutcomesSubset$SMOKE, ref="Yes")
HepTextbookOutcomesSubset$Age = relevel(HepTextbookOutcomesSubset$Age, ref="85+")
```
```{r}
####Multivariant analysis serious complications
MVORHep <-
glm(TextbookOutcomeHepOR ~ PRNCPTX + Age + SEX + RACE_NEW + BMILabled + ASACLAS + STEROID + ASCITES + DYSPNEA + SMOKE + DIALYSIS + DISCANCR + DIABETES + HYPERMED + HXCOPD + HXCHF,
data = HepTextbookOutcomesSubset,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###continue on to merge the table sets
MVORTableHep <-
tbl_regression(MVORHep, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
tbl_merge(
list(UVHep, MVORTableHep),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changling the referent level
TextbookOutcomeOR$PatientGroup <- as.factor(TextbookOutcomeOR$PatientGroup)
TextbookOutcomeOR$BMILabled <- as.factor(TextbookOutcomeOR$BMILabled)
TextbookOutcomeOR$ASACLAS <- as.factor(TextbookOutcomeOR$ASACLAS)
TextbookOutcomeOR$STEROID <- as.factor(TextbookOutcomeOR$STEROID)
TextbookOutcomeOR$DIABETES <- as.factor(TextbookOutcomeOR$DIABETES)
TextbookOutcomeOR$HYPERMED <- as.factor(TextbookOutcomeOR$HYPERMED)
TextbookOutcomeOR$ASCITES <- as.factor(TextbookOutcomeOR$ASCITES)
TextbookOutcomeOR$HXCOPD <- as.factor(TextbookOutcomeOR$HXCOPD)
TextbookOutcomeOR$DIALYSIS <- as.factor(TextbookOutcomeOR$DIALYSIS)
TextbookOutcomeOR$DISCANCR <- as.factor(TextbookOutcomeOR$DISCANCR)
TextbookOutcomeOR$HXCHF <- as.factor(TextbookOutcomeOR$HXCHF)
TextbookOutcomeOR$SMOKE <- as.factor(TextbookOutcomeOR$SMOKE)
TextbookOutcomeOR$Age <- as.factor(TextbookOutcomeOR$Age)
TextbookOutcomeOR$SEX <- as.factor(TextbookOutcomeOR$SEX)
TextbookOutcomeOR$BMILabled = relevel(TextbookOutcomeOR$BMILabled, ref="Normal Weight")
TextbookOutcomeOR$ASACLAS = relevel(TextbookOutcomeOR$ASACLAS, ref="4-Life Threat")
TextbookOutcomeOR$DIABETES = relevel(TextbookOutcomeOR$DIABETES, ref="NO")
TextbookOutcomeOR$SEX = relevel(TextbookOutcomeOR$SEX, ref="male")
TextbookOutcomeOR$SMOKE = relevel(TextbookOutcomeOR$SMOKE, ref="Yes")
TextbookOutcomeOR$STEROID = relevel(TextbookOutcomeOR$STEROID, ref="Yes")
TextbookOutcomeOR$ASCITES = relevel(TextbookOutcomeOR$ASCITES, ref="Yes")
TextbookOutcomeOR$HXCOPD = relevel(TextbookOutcomeOR$HXCOPD, ref="Yes")
TextbookOutcomeOR$DIALYSIS = relevel(TextbookOutcomeOR$DIALYSIS, ref="Yes")
TextbookOutcomeOR$DISCANCR = relevel(TextbookOutcomeOR$DISCANCR, ref="Yes")
TextbookOutcomeOR$HXCHF = relevel(TextbookOutcomeOR$HXCHF, ref="Yes")
TextbookOutcomeOR$Age = relevel(TextbookOutcomeOR$Age, ref="85+")
```
```{r Univariant analysis All}
###Univariant, multivariant for everyone
UVAll <- TextbookOutcomeOR %>%
select(PatientGroup, Age, SEX, RACE_NEW, BMILabled, ASACLAS, STEROID, ASCITES, DYSPNEA, SMOKE, DIALYSIS, DISCANCR, DIABETES, HYPERMED, HXCOPD, HXCHF, TextbookOutcomeAllOR) %>%
tbl_uvregression(
method = glm,
y = TextbookOutcomeAllOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changling the referent level
TextbookOutcomeOR$PatientGroup <- as.factor(TextbookOutcomeOR$PatientGroup)
TextbookOutcomeOR$SEX <- as.factor(TextbookOutcomeOR$SEX)
TextbookOutcomeOR$ASACLAS <- as.factor(TextbookOutcomeOR$ASACLAS)
TextbookOutcomeOR$STEROID <- as.factor(TextbookOutcomeOR$STEROID)
TextbookOutcomeOR$DIABETES <- as.factor(TextbookOutcomeOR$DIABETES)
TextbookOutcomeOR$SMOKE <- as.factor(TextbookOutcomeOR$SMOKE)
TextbookOutcomeOR$ASCITES <- as.factor(TextbookOutcomeOR$ASCITES)
TextbookOutcomeOR$HXCOPD <- as.factor(TextbookOutcomeOR$HXCOPD)
TextbookOutcomeOR$DIALYSIS <- as.factor(TextbookOutcomeOR$DIALYSIS)
TextbookOutcomeOR$DISCANCR <- as.factor(TextbookOutcomeOR$DISCANCR)
TextbookOutcomeOR$HXCHF <- as.factor(TextbookOutcomeOR$HXCHF)
TextbookOutcomeOR$Age <- as.factor(TextbookOutcomeOR$Age)
TextbookOutcomeOR$SEX = relevel(TextbookOutcomeOR$SEX, ref="male")
TextbookOutcomeOR$BMILabled = relevel(TextbookOutcomeOR$BMILabled, ref="Normal Weight")
TextbookOutcomeOR$ASACLAS = relevel(TextbookOutcomeOR$ASACLAS, ref="4-Life Threat")
TextbookOutcomeOR$DIABETES = relevel(TextbookOutcomeOR$DIABETES, ref="NO")
TextbookOutcomeOR$SMOKE = relevel(TextbookOutcomeOR$SMOKE, ref="Yes")
TextbookOutcomeOR$STEROID = relevel(TextbookOutcomeOR$STEROID, ref="Yes")
TextbookOutcomeOR$ASCITES = relevel(TextbookOutcomeOR$ASCITES, ref="Yes")
TextbookOutcomeOR$HXCOPD = relevel(TextbookOutcomeOR$HXCOPD, ref="Yes")
TextbookOutcomeOR$DIALYSIS = relevel(TextbookOutcomeOR$DIALYSIS, ref="Yes")
TextbookOutcomeOR$DISCANCR = relevel(TextbookOutcomeOR$DISCANCR, ref="Yes")
TextbookOutcomeOR$HXCHF = relevel(TextbookOutcomeOR$HXCHF, ref="Yes")
TextbookOutcomeOR$Age = relevel(TextbookOutcomeOR$Age, ref="85+")
```
```{r}
####Multivariant analysis serious complications
MVORAll <-
glm(TextbookOutcomeAllOR ~ PatientGroup + Age + SEX + RACE_NEW + BMILabled + ASACLAS + STEROID + ASCITES + DYSPNEA + SMOKE + DIALYSIS + DISCANCR + DIABETES + HYPERMED + HXCOPD + HXCHF,
data = TextbookOutcomeOR,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###continue on to merge the table sets
MVORTableAll <-
tbl_regression(MVORAll, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
tbl_merge(
list(UVAll, MVORTableAll),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
LOI Everything
---
title: "Loss of Independence"
author: "Abdimajid Mohamed"
date: "2/24/2021"
output: html_document
---
```{r}
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(VIM)
```
```{r}
load("NSQIPFinal.RData")
```
##subset surgspec patients only general surgery patients
NSQIPGENSURG <-
subset(NSQIPALLYEARS, SURGSPEC == "General Surgery")
###Subset patients as inpatient, elective, independent status,
NSQIPInpatient <-
subset(NSQIPGENSURG, INOUT == "Inpatient")
NSQIPElective <-
subset(NSQIPInpatient, ELECTSURG == "Yes")
NSQIPFinal <-
subset(NSQIPElective, FNSTATUS2 == "Independent")
```{r}
##Recoding Procedures into Hep
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST INTRAHEPATC DUCTS & GI TRACT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST ROUX-EN-Y INTRAHEPATC BILIARY DUCTS & GI"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST ROUX-EN-Y XTRHEPATC BILIARY DUCTS & GI"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST XTRHEPATC BILIARY DUCTS & GI TRACT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLECYSTOENTEROSTOMY DIRECT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLECYSTOENTEROSTOMY ROUX-EN-Y"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLEDOCHOT/OST W/O SPHNCTROTOMY/SPHNCTROP"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLEDOCHOT/OST W/SPHNCTROTOMY/SPHNCTROP"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC BILE DUX TUM W/WO PRIM RPR XTRHEPATC"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC BILE DUX TUM W/WO PRIM RPR INTRAHEPATC"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXCISION CHOLEDOCHAL CYST"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ PARTIAL LOBECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ TOTAL LEFT LOBECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ TOTAL RIGHT LOBECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ TRISEGMENTECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATOTOMY OPEN DRAINAGE ABSCESS/CYST 1/2 STAGES"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="SUTURE EXTRAHEPATIC BILE DUCT PRE-EXIST INJURY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="TRANSDUOL SPHINCTEROT/PLASTY W/WO RMVL CALCULUS"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLIS LAPAROSCOPIC PROCEDURE LIVER"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLISTED LAPAROSCOPY PROCEDURE BILIARY TRACT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXPL CONGENITAL ATRESIA BILE DUCTS"] <- "Hep"
##Recoding Procedures into PanNSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX ==""] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXCISION LESION PANCREAS"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PANCREATECTOMY TOTAL"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PANCREATECTOMY W/TRNSPLJ PANCREAS/ISLET CELLS"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PANCREATICOJEJUNOSTOMY SIDE-TO-SIDE ANAST"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PELVIC EXENTERATION COLORECTAL MALIGNANCY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PELVIC EXENTERATION COMPLETE MALIGNANCY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT PROX STOT W/PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT W/PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT WHIPPLE W/O PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PROCTOPEXY W/SIGMOID RESCJ ABDL APPR"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="RESECJ/DBRDMT PANCREAS NECROTIZING PANCREATITIS"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXCISION AMPULLA VATER"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="INT ANAST PANCREATIC CYST GI TRACT DIRECT"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="INT ANAST PANCREATIC CYST GI TRACT ROUX-EN-Y"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS SURG ABLTJ 1/> LVR TUM RF"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT DSTL NR-TOT W/PRSRV DUO CHLD-TYP PX"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT DSTL STOT W/O PNCRTCOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT DSTL STOT W/PNCRTCOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT PROX STOT W/O PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT PROX STOT W/O PANCREATOJEJUNOSTOMY"] <- "Pan"
##Recoding Procedures into Colorectal (col+pro)
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLCT TOT ABDL W/O PRCTECT W/CONTINENT ILEOST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLCT TOT ABDL W/O PRCTECT W/ILEOST/ILEOPXTS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLCT TTL ABD W/PRCTECT ILEOANAL ANAST & RSVR"] <-"CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PARTIAL W/ANASTOMOSIS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL ABDOMINAL & TRANSANAL APPROACH"] <-"CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/COLOPROCTOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/COLOPROCTOSTOMY & COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/COLOST/ILEOST & MUCOFISTULA"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/END COLOSTOMY & CLSR DSTL SGMT"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/RMVL TERMINAL ILEUM & ILEOCOLOS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/SKIN LEVEL CECOST/COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY TOT ABD W/PROCTECTOMY ILEOANAL ANAST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY TOT ABDL W/PROCTECTOMY W/CONTNT ILEOST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY TOT ABDL W/PROCTECTOMY W/ILEOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLOSTOMY/SKIN LEVEL CECOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC RCT TUM PROCTOTOMY TRANSSAC/TRANSCOCCYGEAL"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPAROSCOPY COLECTOMY PARTIAL W/ANASTOMOSIS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPAROSCOPY SURG COLOSTOMY/SKN LVL CECOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLCT TTL ABD W/PRCTECT ILEOANAL ANASTOMSIS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTMY PRTL W/COLOPXTSTMY LW ANAST W/CLST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY ABDL W/PROCTECTOMY W/ILEOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY PRTL W/COLOPXTSTMY LW ANAST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY PRTL W/END CLST & CLSR DSTL SGM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY PRTL W/RMVL TERMINAL ILEUM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY TOT W/O PRCTECT W/ILEOST/ILEOPXTS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS MOBLJ SPLENIC FLXR PFRMD W/PRTL COLECTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS PROCTECTOMY ABDOMINOPERINEAL W/COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS PROCTECTOMY COMBINED PULL-THRU W/RESERVOIR"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="SUTR LG INTESTINE 1/MULT PERFORAT W/O COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLISTED LAPAROSCOPY PX INTESTINE XCP RECTUM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLOSTOMY/SKN LVL CECOSTOMY W/MULT BXS SPX"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT CMBN ABDOMINOPRNL PULL-THRU PX"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT CMBN PULL-THRU W/RSVR W/NTRSTM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT COMPL CMBN ABDOMINOPRNL W/CLST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL RESCJ RECTUM TABDL APPR"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/O ANAST PRNL APPR"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/ANAST ABDL & TRANSSAC APPROACH"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/ANAST TRANSSAC APPR ONLY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/MUCOSEC ILEOANAL ANAST RSVR"] <- "CRC"
##Recoding Procedures into Gastric
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC LOCAL MALIGNANT TUMOR STOMACH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC LOCAL ULCER/BENIGN TUMOR STOMACH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTRIC RSTCV W/PRTL GASTRECTOMY 50-100 CM"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTRODUODENOSTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTROJEJUNOSTOMY W/O VAGOTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTROJEJUNOSTOMY W/VAGOTOMY ANY TYPE"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTRORRHAPHY SUTR PRF8 DUOL/GSTR ULCER WND/INJ"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTROTOMY W/SUTURE REPAIR BLEEDING ULCER"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/ROUX-EN-Y RCNSTJ"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT TOT W/ESOPHAGOENTEROSTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT TOT W/FRMJ INTSTINAL POUCH ANY TYPE"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT TOT W/ROUX-EN-Y RCNSTJ"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/GASTRODUODENOSTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLISTED LAPAROSCOPIC PROCEDURE STOMACH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/FRMJ INTSTINAL POUCH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/FRMJ INTSTINAL POUCH"] <- "Gastric"
```
```{r}
### Recoding mortality
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == -99] <- "No"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 0] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 1] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 2] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 3] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 4] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 5] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 6] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 7] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 8] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 9] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 10] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 11] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 12] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 13] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 14] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 15] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 16] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 17] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 18] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 19] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 20] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 21] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 22] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 23] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 24] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 25] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 26] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 27] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 28] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 29] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 30] <- "Yes"
```
```{r}
### Remove patients who died
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == "Yes"] <- NA
```
```{r}
NSQIPFinal$PRSEPIS[NSQIPFinal$PRSEPIS == "Sepsis"] <- NA
NSQIPFinal$PRSEPIS[NSQIPFinal$PRSEPIS == "Septic Shock"] <- NA
NSQIPFinal$PRSEPIS[NSQIPFinal$PRSEPIS == "SIRS"] <- NA
NSQIPFinal$SEPSISPATOS[NSQIPFinal$SEPSISPATOS == "Yes"] <- NA
NSQIPFinal$OTHSYSEP[NSQIPFinal$OTHSYSEP == "Sepsis"] <- NA
```
```{r}
###remove patients who are on a ventilator
NSQIPFinal$VENTILAT[NSQIPFinal$VENTILAT == "Yes"] <- NA
```
```{r}
###remove patients who are on a Emergency
NSQIPFinal$EMERGNCY[NSQIPFinal$EMERGNCY == "Yes"] <- NA
```
```{r}
NSQIPFinal$Age[NSQIPFinal$Age == "90+"] <- 90
NSQIPFinal$Age <- as.numeric(NSQIPFinal$Age)
```
```{r}
NSQIPFinal <-
NSQIPFinal %>%
mutate(NSQIPFinal, AgeB = ifelse(Age >= 85, "85+",
ifelse(Age >= 75, "75-84",
ifelse(Age >= 65, "65-74",
ifelse(Age >=0, "0-65", NA)))))
```
```{r}
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "American Indian or Alaska Native"] <- "Other"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Asian"] <- "Other"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Native Hawaiian or Pacific Islander"] <- "Other"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Black or African American"] <- "Black"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Unknown/Not Reported"] <- NA
```
```{r}
NSQIPFinal$ASACLAS[NSQIPFinal$ASACLAS == "5-Moribund"] <- NA
NSQIPFinal$ASACLAS[NSQIPFinal$ASACLAS == "None assigned"] <- NA
```
```{r}
NSQIPFinal$DIABETES[NSQIPFinal$DIABETES == "INSULIN"] <- "Yes"
NSQIPFinal$DIABETES[NSQIPFinal$DIABETES == "NON-INSULIN"] <- "Yes"
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
##Diabeties recoded for MFI
NSQIPFinal1 <-
NSQIPFinal %>%
mutate(NSQIPFinal, DiabetesMFI = ifelse(DIABETES == "INSULIN", "1",
ifelse(DIABETES == "NON-INSULIN", "1",
ifelse(DIABETES == "NO", "0", "NA"))))
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
###CHF recoded for MFI
NSQIPFinal2 <-
NSQIPFinal1 %>%
mutate(NSQIPFinal1, CHFMFI = ifelse(HXCHF == "Yes", "1",
ifelse(HXCHF == "No", "0", "NA")))
table(NSQIPFinal2$CHFMFI)
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
### COPD recoded for MFI
NSQIPFinal3 <-
NSQIPFinal2 %>%
mutate(NSQIPFinal2, COPDMFI = ifelse(HXCOPD == "Yes", "1",
ifelse(HXCOPD == "No", "0", "NA")))
table(NSQIPFinal3$ASA)
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
### Hypertension with medications recoded for MFI
NSQIPFinal4 <-
NSQIPFinal3 %>%
mutate(NSQIPFinal3, HYPERMEDMFI = ifelse(HYPERMED == "Yes", "1",
ifelse(HYPERMED == "No", "0", "NA")))
```
```{r}
##making the columns numeric to add them properly
NSQIPFinal4$HYPERMEDMFI <- as.numeric(NSQIPFinal4$HYPERMEDMFI)
NSQIPFinal4$COPDMFI <- as.numeric(NSQIPFinal4$COPDMFI)
NSQIPFinal4$CHFMFI <- as.numeric(NSQIPFinal4$CHFMFI)
NSQIPFinal4$DiabetesMFI <- as.numeric(NSQIPFinal4$DiabetesMFI)
```
```{r}
###Creating MFI column
NSQIPFinal4$MFI5 <- (NSQIPFinal4$HYPERMEDMFI + NSQIPFinal4$COPDMFI + NSQIPFinal4$CHFMFI + NSQIPFinal4$DiabetesMFI)
```
```{r}
NSQIPFinal4$WEIGHT[NSQIPFinal4$WEIGHT ==-99] <- NA
NSQIPFinal4$HEIGHT[NSQIPFinal4$HEIGHT ==-99] <- NA
```
```{r}
NSQIPFinal4$BMI <- (NSQIPFinal4$WEIGHT / NSQIPFinal4$HEIGHT / NSQIPFinal4$HEIGHT) *703
```
```{r}
NSQIPFinalBMI <-
NSQIPFinal4 %>%
mutate(NSQIPFinal4, BMILabled = ifelse(BMI >= 40, "Morbidly Obese",
ifelse(BMI >= 30, "Obese",
ifelse(BMI >= 25, "Overweight",
ifelse(BMI >=18.5, "Normal Weight",
ifelse(BMI <= 18.49, "Underweight", NA))))))
```
```{r}
NSQIPFinal5 <-
NSQIPFinalBMI %>%
mutate(NSQIPFinalBMI, LossofIndependence = ifelse(DISCHDEST == "Skilled Care, Not Home", "Yes",
ifelse(DISCHDEST == "Rehab", "Yes",
ifelse(DISCHDEST == "Unskilled Facility Not Home", "Yes",
ifelse(DISCHDEST == "Separate Acute Care", "Yes",
ifelse(DISCHDEST == "Expired", "NA",
ifelse(DISCHDEST == "Unknown", "NA", "No")))))))
```
```{r}
NSQIPFinal5$LossofIndependence[NSQIPFinal5$LossofIndependence == "NA"] <- NA
```
```{r}
NSQIPFinal5$DISCHDEST[NSQIPFinal5$DISCHDEST == "NA"] <- NA
```
```{r}
NSQIPFinal6 <-
NSQIPFinal5 %>%
mutate(NSQIPFinal5, ProcedureGroup = ifelse(PRNCPTX == "Hep", "Liver",
ifelse(PRNCPTX == "Pan", "Pancreas",
ifelse(PRNCPTX == "CRC", "Colorectal",
ifelse(PRNCPTX == "Gastric", "Gastric", "NA")))))
```
```{r}
NSQIPFinal6$ProcedureGroup[NSQIPFinal6$ProcedureGroup =="NA"] <- NA
```
```{r}
LossofIndependenceDF <- subset(NSQIPFinal6 , ProcedureGroup == "Liver" | ProcedureGroup == "Pancreas" | ProcedureGroup == "Colorectal" | ProcedureGroup == "Gastric")
```
```{r}
LossofIndependenceDT <-
LossofIndependenceDF %>%
mutate(LossofIndependenceDF, ModifiedFrailtyIndex5 = ifelse(MFI5 == 0, "0",
ifelse(MFI5 == 1, "1",
ifelse(MFI5 > 2, ">2", NA))))
```
```{r}
LossofIndependenceDT1 <-
LossofIndependenceDT %>%
select(LossofIndependence, AgeB, SEX, BMILabled, RACE_NEW, STEROID, DIABETES, HYPERMED, ASACLAS, ASCITES, HXCHF, DYSPNEA, SMOKE, HXCOPD, DIALYSIS, OPRENAFL, DISCANCR, ModifiedFrailtyIndex5, ProcedureGroup)
```
```{r}
LossofIndependenceDT1 %>%
tbl_summary(
by = LossofIndependence,
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") ~ "**Loss of Independence*") %>%
bold_labels()
```
```{r}
LOIOddsRatio <-
LossofIndependenceDT1 %>%
select(LossofIndependence, AgeB, SEX, BMILabled, RACE_NEW, STEROID, ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5, ProcedureGroup)
```
```{r Create the binary outcome}
LOIOddsRatio1 <- LOIOddsRatio %>%
mutate(LOIOddsRatio, LOIOR = ifelse(LossofIndependence =="Yes", "1",
ifelse(LossofIndependence =="No", "0", "NA")))
LOIOddsRatio1$LOIOR <- as.numeric(LOIOddsRatio1$LOIOR)
```
```{r}
###changling the referent level
LOIOddsRatio1$SEX <- as.factor(LOIOddsRatio1$SEX)
LOIOddsRatio1$BMILabled <- as.factor(LOIOddsRatio1$BMILabled)
LOIOddsRatio1$RACE_NEW <- as.factor(LOIOddsRatio1$RACE_NEW)
LOIOddsRatio1$DYSPNEA <- as.factor(LOIOddsRatio1$DYSPNEA)
LOIOddsRatio1$OPRENAFL <- as.factor(LOIOddsRatio1$OPRENAFL)
LOIOddsRatio1$ModifiedFrailtyIndex5 <- as.factor(LOIOddsRatio1$ModifiedFrailtyIndex5)
LOIOddsRatio1$SEX = relevel(LOIOddsRatio1$SEX, ref="male")
LOIOddsRatio1$BMILabled = relevel(LOIOddsRatio1$BMILabled, ref="Normal Weight")
LOIOddsRatio1$RACE_NEW = relevel(LOIOddsRatio1$RACE_NEW, ref="White")
LOIOddsRatio1$DYSPNEA = relevel(LOIOddsRatio1$DYSPNEA, ref="No")
LOIOddsRatio1$OPRENAFL = relevel(LOIOddsRatio1$OPRENAFL, ref="No Complication")
LOIOddsRatio1$ModifiedFrailtyIndex5 = relevel(LOIOddsRatio1$ModifiedFrailtyIndex5, ref="0")
```
```{r Univariant analysis}
UV <- LOIOddsRatio1 %>%
select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID, ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5, ProcedureGroup) %>%
tbl_uvregression(
method = glm,
y = LOIOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
LOIOddsRatio1 %>%
select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID,ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5, ProcedureGroup) %>%
tbl_uvregression(
method = glm,
y = LOIOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changling the referent level
LOIOddsRatio1$SEX <- as.factor(LOIOddsRatio1$SEX)
LOIOddsRatio1$BMILabled <- as.factor(LOIOddsRatio1$BMILabled)
LOIOddsRatio1$RACE_NEW <- as.factor(LOIOddsRatio1$RACE_NEW)
LOIOddsRatio1$DYSPNEA <- as.factor(LOIOddsRatio1$DYSPNEA)
LOIOddsRatio1$OPRENAFL <- as.factor(LOIOddsRatio1$OPRENAFL)
LOIOddsRatio1$ModifiedFrailtyIndex5 <- as.factor(LOIOddsRatio1$ModifiedFrailtyIndex5)
LOIOddsRatio1$SEX = relevel(LOIOddsRatio1$SEX, ref="male")
LOIOddsRatio1$BMILabled = relevel(LOIOddsRatio1$BMILabled, ref="Normal Weight")
LOIOddsRatio1$RACE_NEW = relevel(LOIOddsRatio1$RACE_NEW, ref="White")
LOIOddsRatio1$DYSPNEA = relevel(LOIOddsRatio1$DYSPNEA, ref="No")
LOIOddsRatio1$OPRENAFL = relevel(LOIOddsRatio1$OPRENAFL, ref="No Complication")
LOIOddsRatio1$ModifiedFrailtyIndex5 = relevel(LOIOddsRatio1$ModifiedFrailtyIndex5, ref="0")
```
```{r}
####Multivariant analysis serious complications
MVOR <-
glm(LOIOR ~ AgeB + SEX + BMILabled+ RACE_NEW + STEROID + ASACLAS + ASCITES + DYSPNEA + SMOKE + DIALYSIS + OPRENAFL + ModifiedFrailtyIndex5 + ProcedureGroup ,
data = LOIOddsRatio1,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###continue on to merge the table sets
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
tbl_merge(
list(UV, MVORTable),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
---
title: "Imputing Data/Predictive Modeling"
author: "Abdimajid Mohamed"
date: "2/28/2021"
output: html_document
---```
```{r}
###install.packages("mice")
###
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(pROC)
library(rms)
library(mice)
library(VIM)
library(nnet)
library(ROCR)
library(devtools)
library(mice, warn.conflicts = FALSE)
```
```{r}
###Imputing the data
LOIOddsRatio1 <-
LOIOddsRatio1 %>%
select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID,ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5)
LOIOddsRatio1$RACE_NEW <- as.factor(LOIOddsRatio1$RACE_NEW)
LOIOddsRatio1$ASACLAS <- as.factor(LOIOddsRatio1$ASACLAS)
LOIOddsRatio1$BMILabled <- as.factor(LOIOddsRatio1$BMILabled)
LOIOddsRatio1$ModifiedFrailtyIndex5 <- as.factor(LOIOddsRatio1$ModifiedFrailtyIndex5)
```
```{r}
LOIImputed <-mice(LOIOddsRatio1)
```
```{r}
LOI1 = complete(LOIImputed,1)
```
```{r}
NSQIPRiskCalculatorDF <-
LOI1 %>%
select(LOIOR, AgeB, SEX, BMILabled, STEROID,ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL)
NSQIPRiskCalculatorDF <-
NSQIPRiskCalculatorDF %>%
remove_missing()
PortlandDF <-
LOI1 %>%
select(LOIOR, AgeB, SEX, RACE_NEW, ModifiedFrailtyIndex5)
PortlandDF <-
PortlandDF %>%
remove_missing()
```
```{r}
NSQIPRiskCalculatorModel <-
glm(LOIOR~AgeB+SEX+BMILabled+STEROID+ASACLAS+ASCITES+DYSPNEA+SMOKE+DIALYSIS+OPRENAFL, family = binomial(link = "logit"), data = NSQIPRiskCalculatorDF)
```
```{r}
NSQIPPredict=predict(NSQIPRiskCalculatorModel)
NSQIPPredictModel1=prediction(NSQIPPredict, NSQIPRiskCalculatorDF$LOIOR)
plot(performance(NSQIPPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
```
```{r}
x=performance(NSQIPPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
```
```{r}
auc=performance(NSQIPPredictModel1,"auc")
unlist(slot(auc,"y.values"))
```
```{r}
ci.auc(NSQIPRiskCalculatorDF$LOIOR, NSQIPPredict)
```
```{r}
PortlandModel <-
glm(LOIOR~AgeB+SEX+RACE_NEW+ModifiedFrailtyIndex5, family = binomial(link = "logit"), data = PortlandDF)
```
```{r}
PortlandPredict=predict(PortlandModel)
PortlandPredictModel1=prediction(PortlandPredict, PortlandDF$LOIOR)
plot(performance(PortlandPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
```
```{r}
x=performance(PortlandPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
```
```{r}
auc=performance(PortlandPredictModel1,"auc")
unlist(slot(auc,"y.values"))
```
```{r}
ci.auc(PortlandDF$LOIOR, PortlandPredict)
```
AUC Data LOI
---
title: "Imputing Data/Predictive Modeling"
author: "Abdimajid Mohamed"
date: "2/28/2021"
output: html_document
---```
```{r}
###install.packages("mice")
###install.packages("devtools")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(pROC)
library(rms)
library(mice)
library(VIM)
library(nnet)
library(ROCR)
library(devtools)
library(mice, warn.conflicts = FALSE)
```
###Imputing the data
md.pattern(LOIOddsRatio1)
LOIImputed <-mice(LOIOddsRatio1)
LOI1 = complete(LOIImputed,1)
LOI2 = complete(LOIImputed,2)
LOI3 = complete(LOIImputed,3)
LOI4 = complete(LOIImputed,4)
LOI5 = complete(LOIImputed,5)
```{r}
load("ImputedDataComplete.RData")
NSQIPRiskCalculatorDF <-
LOI1 %>%
select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID,ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL)
NSQIPRiskCalculatorDF <-
NSQIPRiskCalculatorDF %>%
remove_missing()
PortlandDF <-
LOI1 %>%
select(LOIOR, AgeB, SEX, RACE_NEW, ModifiedFrailtyIndex5)
PortlandDF <-
PortlandDF %>%
remove_missing()
```
```{r}
NSQIPRiskCalculatorModel <-
glm(LOIOR~AgeB+SEX+BMILabled+RACE_NEW+STEROID+ASACLAS+ASCITES+DYSPNEA+SMOKE+DIALYSIS+OPRENAFL, family = binomial(link = "logit"), data = NSQIPRiskCalculatorDF)
```
```{r}
NSQIPPredict=predict(NSQIPRiskCalculatorModel)
NSQIPPredictModel1=prediction(NSQIPPredict, NSQIPRiskCalculatorDF$LOIOR)
plot(performance(NSQIPPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
```
```{r}
x=performance(NSQIPPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
```
```{r}
auc=performance(NSQIPPredictModel1,"auc")
unlist(slot(auc,"y.values"))
```
```{r}
ci.auc(NSQIPRiskCalculatorDF$LOIOR, NSQIPPredict)
```
```{r}
PortlandModel <-
glm(LOIOR~AgeB+SEX+ModifiedFrailtyIndex5, family = binomial(link = "logit"), data = PortlandDF)
```
```{r}
PortlandPredict=predict(PortlandModel)
PortlandPredictModel1=prediction(PortlandPredict, PortlandDF$LOIOR)
plot(performance(PortlandPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
```
```{r}
x=performance(PortlandPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
```
```{r}
auc=performance(PortlandPredictModel1,"auc")
unlist(slot(auc,"y.values"))
```
```{r}
ci.auc(PortlandDF$LOIOR, PortlandPredict)
```
Loss of Independence Demographic Tables/Odds Ratio
---
title: "Loss of Independence"
author: "Abdimajid Mohamed"
date: "2/24/2021"
output: html_document
---
```{r}
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(VIM)
```
```{r}
load("NSQIPFinal.RData")
```
##subset surgspec patients only general surgery patients
NSQIPGENSURG <-
subset(NSQIPALLYEARS, SURGSPEC == "General Surgery")
###Subset patients as inpatient, elective, independent status,
NSQIPInpatient <-
subset(NSQIPGENSURG, INOUT == "Inpatient")
NSQIPElective <-
subset(NSQIPInpatient, ELECTSURG == "Yes")
NSQIPFinal <-
subset(NSQIPElective, FNSTATUS2 == "Independent")
```{r}
##Recoding Procedures into Hep
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST INTRAHEPATC DUCTS & GI TRACT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST ROUX-EN-Y INTRAHEPATC BILIARY DUCTS & GI"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST ROUX-EN-Y XTRHEPATC BILIARY DUCTS & GI"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="ANAST XTRHEPATC BILIARY DUCTS & GI TRACT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLECYSTOENTEROSTOMY DIRECT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLECYSTOENTEROSTOMY ROUX-EN-Y"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLEDOCHOT/OST W/O SPHNCTROTOMY/SPHNCTROP"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="CHOLEDOCHOT/OST W/SPHNCTROTOMY/SPHNCTROP"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC BILE DUX TUM W/WO PRIM RPR XTRHEPATC"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC BILE DUX TUM W/WO PRIM RPR INTRAHEPATC"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXCISION CHOLEDOCHAL CYST"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ PARTIAL LOBECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ TOTAL LEFT LOBECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ TOTAL RIGHT LOBECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATECTOMY RESCJ TRISEGMENTECTOMY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="HEPATOTOMY OPEN DRAINAGE ABSCESS/CYST 1/2 STAGES"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="SUTURE EXTRAHEPATIC BILE DUCT PRE-EXIST INJURY"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="TRANSDUOL SPHINCTEROT/PLASTY W/WO RMVL CALCULUS"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLIS LAPAROSCOPIC PROCEDURE LIVER"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLISTED LAPAROSCOPY PROCEDURE BILIARY TRACT"] <- "Hep"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXPL CONGENITAL ATRESIA BILE DUCTS"] <- "Hep"
##Recoding Procedures into PanNSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX ==""] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXCISION LESION PANCREAS"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PANCREATECTOMY TOTAL"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PANCREATECTOMY W/TRNSPLJ PANCREAS/ISLET CELLS"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PANCREATICOJEJUNOSTOMY SIDE-TO-SIDE ANAST"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PELVIC EXENTERATION COLORECTAL MALIGNANCY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PELVIC EXENTERATION COMPLETE MALIGNANCY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT PROX STOT W/PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT W/PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT WHIPPLE W/O PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PROCTOPEXY W/SIGMOID RESCJ ABDL APPR"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="RESECJ/DBRDMT PANCREAS NECROTIZING PANCREATITIS"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXCISION AMPULLA VATER"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="INT ANAST PANCREATIC CYST GI TRACT DIRECT"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="INT ANAST PANCREATIC CYST GI TRACT ROUX-EN-Y"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS SURG ABLTJ 1/> LVR TUM RF"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT DSTL NR-TOT W/PRSRV DUO CHLD-TYP PX"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT DSTL STOT W/O PNCRTCOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT DSTL STOT W/PNCRTCOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT PROX STOT W/O PANCREATOJEJUNOSTOMY"] <- "Pan"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PNCRTECT PROX STOT W/O PANCREATOJEJUNOSTOMY"] <- "Pan"
##Recoding Procedures into Colorectal (col+pro)
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLCT TOT ABDL W/O PRCTECT W/CONTINENT ILEOST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLCT TOT ABDL W/O PRCTECT W/ILEOST/ILEOPXTS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLCT TTL ABD W/PRCTECT ILEOANAL ANAST & RSVR"] <-"CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PARTIAL W/ANASTOMOSIS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL ABDOMINAL & TRANSANAL APPROACH"] <-"CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/COLOPROCTOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/COLOPROCTOSTOMY & COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/COLOST/ILEOST & MUCOFISTULA"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/END COLOSTOMY & CLSR DSTL SGMT"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/RMVL TERMINAL ILEUM & ILEOCOLOS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY PRTL W/SKIN LEVEL CECOST/COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY TOT ABD W/PROCTECTOMY ILEOANAL ANAST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY TOT ABDL W/PROCTECTOMY W/CONTNT ILEOST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLECTOMY TOT ABDL W/PROCTECTOMY W/ILEOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLOSTOMY/SKIN LEVEL CECOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC RCT TUM PROCTOTOMY TRANSSAC/TRANSCOCCYGEAL"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPAROSCOPY COLECTOMY PARTIAL W/ANASTOMOSIS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPAROSCOPY SURG COLOSTOMY/SKN LVL CECOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLCT TTL ABD W/PRCTECT ILEOANAL ANASTOMSIS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTMY PRTL W/COLOPXTSTMY LW ANAST W/CLST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY ABDL W/PROCTECTOMY W/ILEOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY PRTL W/COLOPXTSTMY LW ANAST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY PRTL W/END CLST & CLSR DSTL SGM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY PRTL W/RMVL TERMINAL ILEUM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS COLECTOMY TOT W/O PRCTECT W/ILEOST/ILEOPXTS"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS MOBLJ SPLENIC FLXR PFRMD W/PRTL COLECTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS PROCTECTOMY ABDOMINOPERINEAL W/COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="LAPS PROCTECTOMY COMBINED PULL-THRU W/RESERVOIR"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="SUTR LG INTESTINE 1/MULT PERFORAT W/O COLOSTOMY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLISTED LAPAROSCOPY PX INTESTINE XCP RECTUM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="COLOSTOMY/SKN LVL CECOSTOMY W/MULT BXS SPX"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT CMBN ABDOMINOPRNL PULL-THRU PX"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT CMBN PULL-THRU W/RSVR W/NTRSTM"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT COMPL CMBN ABDOMINOPRNL W/CLST"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL RESCJ RECTUM TABDL APPR"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/O ANAST PRNL APPR"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/ANAST ABDL & TRANSSAC APPROACH"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/ANAST TRANSSAC APPR ONLY"] <- "CRC"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="PRCTECT PRTL W/MUCOSEC ILEOANAL ANAST RSVR"] <- "CRC"
##Recoding Procedures into Gastric
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC LOCAL MALIGNANT TUMOR STOMACH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="EXC LOCAL ULCER/BENIGN TUMOR STOMACH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTRIC RSTCV W/PRTL GASTRECTOMY 50-100 CM"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTRODUODENOSTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTROJEJUNOSTOMY W/O VAGOTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTROJEJUNOSTOMY W/VAGOTOMY ANY TYPE"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTRORRHAPHY SUTR PRF8 DUOL/GSTR ULCER WND/INJ"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GASTROTOMY W/SUTURE REPAIR BLEEDING ULCER"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/ROUX-EN-Y RCNSTJ"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT TOT W/ESOPHAGOENTEROSTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT TOT W/FRMJ INTSTINAL POUCH ANY TYPE"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT TOT W/ROUX-EN-Y RCNSTJ"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/GASTRODUODENOSTOMY"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="UNLISTED LAPAROSCOPIC PROCEDURE STOMACH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/FRMJ INTSTINAL POUCH"] <- "Gastric"
NSQIPFinal$PRNCPTX[NSQIPFinal$PRNCPTX =="GSTRCT PRTL DSTL W/FRMJ INTSTINAL POUCH"] <- "Gastric"
```
```{r}
### Recoding mortality
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == -99] <- "No"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 0] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 1] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 2] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 3] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 4] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 5] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 6] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 7] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 8] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 9] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 10] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 11] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 12] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 13] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 14] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 15] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 16] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 17] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 18] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 19] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 20] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 21] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 22] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 23] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 24] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 25] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 26] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 27] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 28] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 29] <- "Yes"
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == 30] <- "Yes"
```
```{r}
### Remove patients who died
NSQIPFinal$DOpertoD[NSQIPFinal$DOpertoD == "Yes"] <- NA
```
```{r}
NSQIPFinal$PRSEPIS[NSQIPFinal$PRSEPIS == "Sepsis"] <- NA
NSQIPFinal$PRSEPIS[NSQIPFinal$PRSEPIS == "Septic Shock"] <- NA
NSQIPFinal$PRSEPIS[NSQIPFinal$PRSEPIS == "SIRS"] <- NA
NSQIPFinal$SEPSISPATOS[NSQIPFinal$SEPSISPATOS == "Yes"] <- NA
NSQIPFinal$OTHSYSEP[NSQIPFinal$OTHSYSEP == "Sepsis"] <- NA
```
```{r}
###remove patients who are on a ventilator
NSQIPFinal$VENTILAT[NSQIPFinal$VENTILAT == "Yes"] <- NA
```
```{r}
###remove patients who are on a Emergency
NSQIPFinal$EMERGNCY[NSQIPFinal$EMERGNCY == "Yes"] <- NA
```
```{r}
NSQIPFinal$Age[NSQIPFinal$Age == "90+"] <- 90
NSQIPFinal$Age <- as.numeric(NSQIPFinal$Age)
```
```{r}
NSQIPFinal <-
NSQIPFinal %>%
mutate(NSQIPFinal, AgeB = ifelse(Age >= 85, "85+",
ifelse(Age >= 75, "75-84",
ifelse(Age >= 65, "65-74",
ifelse(Age >=0, "0-65", NA)))))
```
```{r}
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "American Indian or Alaska Native"] <- "Other"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Asian"] <- "Other"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Native Hawaiian or Pacific Islander"] <- "Other"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Black or African American"] <- "Black"
NSQIPFinal$RACE_NEW[NSQIPFinal$RACE_NEW == "Unknown/Not Reported"] <- NA
```
```{r}
NSQIPFinal$ASACLAS[NSQIPFinal$ASACLAS == "5-Moribund"] <- NA
NSQIPFinal$ASACLAS[NSQIPFinal$ASACLAS == "None assigned"] <- NA
```
```{r}
NSQIPFinal$DIABETES[NSQIPFinal$DIABETES == "INSULIN"] <- "Yes"
NSQIPFinal$DIABETES[NSQIPFinal$DIABETES == "NON-INSULIN"] <- "Yes"
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
##Diabeties recoded for MFI
NSQIPFinal1 <-
NSQIPFinal %>%
mutate(NSQIPFinal, DiabetesMFI = ifelse(DIABETES == "INSULIN", "1",
ifelse(DIABETES == "NON-INSULIN", "1",
ifelse(DIABETES == "NO", "0", "NA"))))
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
###CHF recoded for MFI
NSQIPFinal2 <-
NSQIPFinal1 %>%
mutate(NSQIPFinal1, CHFMFI = ifelse(HXCHF == "Yes", "1",
ifelse(HXCHF == "No", "0", "NA")))
table(NSQIPFinal2$CHFMFI)
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
### COPD recoded for MFI
NSQIPFinal3 <-
NSQIPFinal2 %>%
mutate(NSQIPFinal2, COPDMFI = ifelse(HXCOPD == "Yes", "1",
ifelse(HXCOPD == "No", "0", "NA")))
table(NSQIPFinal3$ASA)
```
```{r}
###Create new numeric column that will be used to create the MFI5 column 0, >1, and greater than >2
### Hypertension with medications recoded for MFI
NSQIPFinal4 <-
NSQIPFinal3 %>%
mutate(NSQIPFinal3, HYPERMEDMFI = ifelse(HYPERMED == "Yes", "1",
ifelse(HYPERMED == "No", "0", "NA")))
table(NSQIPFinal4$hyper)
```
```{r}
##making the columns numeric to add them properly
NSQIPFinal4$HYPERMEDMFI <- as.numeric(NSQIPFinal4$HYPERMEDMFI)
NSQIPFinal4$COPDMFI <- as.numeric(NSQIPFinal4$COPDMFI)
NSQIPFinal4$CHFMFI <- as.numeric(NSQIPFinal4$CHFMFI)
NSQIPFinal4$DiabetesMFI <- as.numeric(NSQIPFinal4$DiabetesMFI)
```
```{r}
###Creating MFI column
NSQIPFinal4$MFI5 <- (NSQIPFinal4$HYPERMEDMFI + NSQIPFinal4$COPDMFI + NSQIPFinal4$CHFMFI + NSQIPFinal4$DiabetesMFI)
```
```{r}
NSQIPFinal4$WEIGHT[NSQIPFinal4$WEIGHT ==-99] <- NA
NSQIPFinal4$HEIGHT[NSQIPFinal4$HEIGHT ==-99] <- NA
```
```{r}
NSQIPFinal4$BMI <- (NSQIPFinal4$WEIGHT / NSQIPFinal4$HEIGHT / NSQIPFinal4$HEIGHT) *703
```
```{r}
NSQIPFinalBMI <-
NSQIPFinal4 %>%
mutate(NSQIPFinal4, BMILabled = ifelse(BMI >= 40, "Morbidly Obese",
ifelse(BMI >= 30, "Obese",
ifelse(BMI >= 25, "Overweight",
ifelse(BMI >=18.5, "Normal Weight",
ifelse(BMI <= 18.49, "Underweight", NA))))))
```
```{r}
NSQIPFinal5 <-
NSQIPFinalBMI %>%
mutate(NSQIPFinalBMI, LossofIndependence = ifelse(DISCHDEST == "Skilled Care, Not Home", "Yes",
ifelse(DISCHDEST == "Rehab", "Yes",
ifelse(DISCHDEST == "Unskilled Facility Not Home", "Yes",
ifelse(DISCHDEST == "Separate Acute Care", "Yes",
ifelse(DISCHDEST == "Expired", "NA",
ifelse(DISCHDEST == "Unknown", "NA", "No")))))))
```
```{r}
NSQIPFinal5$LossofIndependence[NSQIPFinal5$LossofIndependence == "NA"] <- NA
```
```{r}
NSQIPFinal5$DISCHDEST[NSQIPFinal5$DISCHDEST == "NA"] <- NA
```
```{r}
NSQIPFinal6 <-
NSQIPFinal5 %>%
mutate(NSQIPFinal5, ProcedureGroup = ifelse(PRNCPTX == "Hep", "Liver",
ifelse(PRNCPTX == "Pan", "Pancreas",
ifelse(PRNCPTX == "CRC", "Colorectal",
ifelse(PRNCPTX == "Gastric", "Gastric", "NA")))))
```
```{r}
NSQIPFinal6$ProcedureGroup[NSQIPFinal6$ProcedureGroup =="NA"] <- NA
```
```{r}
LossofIndependenceDF <- subset(NSQIPFinal6 , ProcedureGroup == "Liver" | ProcedureGroup == "Pancreas" | ProcedureGroup == "Colorectal" | ProcedureGroup == "Gastric")
```
```{r}
LossofIndependenceDT <-
LossofIndependenceDF %>%
mutate(LossofIndependenceDF, ModifiedFrailtyIndex5 = ifelse(MFI5 == 0, "0",
ifelse(MFI5 == 1, "1",
ifelse(MFI5 > 2, ">2", NA))))
```
```{r}
LossofIndependenceDT1 <-
LossofIndependenceDT %>%
select(LossofIndependence, AgeB, SEX, BMILabled, RACE_NEW, STEROID, DIABETES, HYPERMED, ASACLAS, ASCITES, HXCHF, DYSPNEA, SMOKE, HXCOPD, DIALYSIS, OPRENAFL, DISCANCR, ModifiedFrailtyIndex5, ProcedureGroup)
```
```{r}
LossofIndependenceDT1 %>%
tbl_summary(
by = LossofIndependence,
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") ~ "**Loss of Independence*") %>%
bold_labels()
```
```{r}
LOIOddsRatio <-
LossofIndependenceDT1 %>%
select(LossofIndependence, AgeB, SEX, BMILabled, RACE_NEW, STEROID, ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5, ProcedureGroup)
```
```{r Create the binary outcome}
LOIOddsRatio1 <- LOIOddsRatio %>%
mutate(LOIOddsRatio, LOIOR = ifelse(LossofIndependence =="Yes", "1",
ifelse(LossofIndependence =="No", "0", "NA")))
LOIOddsRatio1$LOIOR <- as.numeric(LOIOddsRatio1$LOIOR)
```
```{r}
###changling the referent level
LOIOddsRatio1$SEX <- as.factor(LOIOddsRatio1$SEX)
LOIOddsRatio1$BMILabled <- as.factor(LOIOddsRatio1$BMILabled)
LOIOddsRatio1$RACE_NEW <- as.factor(LOIOddsRatio1$RACE_NEW)
LOIOddsRatio1$DYSPNEA <- as.factor(LOIOddsRatio1$DYSPNEA)
LOIOddsRatio1$OPRENAFL <- as.factor(LOIOddsRatio1$OPRENAFL)
LOIOddsRatio1$ModifiedFrailtyIndex5 <- as.factor(LOIOddsRatio1$ModifiedFrailtyIndex5)
LOIOddsRatio1$SEX = relevel(LOIOddsRatio1$SEX, ref="male")
LOIOddsRatio1$BMILabled = relevel(LOIOddsRatio1$BMILabled, ref="Normal Weight")
LOIOddsRatio1$RACE_NEW = relevel(LOIOddsRatio1$RACE_NEW, ref="White")
LOIOddsRatio1$DYSPNEA = relevel(LOIOddsRatio1$DYSPNEA, ref="No")
LOIOddsRatio1$OPRENAFL = relevel(LOIOddsRatio1$OPRENAFL, ref="No Complication")
LOIOddsRatio1$ModifiedFrailtyIndex5 = relevel(LOIOddsRatio1$ModifiedFrailtyIndex5, ref="0")
```
```{r Univariant analysis}
UV <- LOIOddsRatio1 %>%
select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID, ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5, ProcedureGroup) %>%
tbl_uvregression(
method = glm,
y = LOIOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
LOIOddsRatio1 %>%
select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID,ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL, ModifiedFrailtyIndex5, ProcedureGroup) %>%
tbl_uvregression(
method = glm,
y = LOIOR,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
###changling the referent level
LOIOddsRatio1$SEX <- as.factor(LOIOddsRatio1$SEX)
LOIOddsRatio1$BMILabled <- as.factor(LOIOddsRatio1$BMILabled)
LOIOddsRatio1$RACE_NEW <- as.factor(LOIOddsRatio1$RACE_NEW)
LOIOddsRatio1$DYSPNEA <- as.factor(LOIOddsRatio1$DYSPNEA)
LOIOddsRatio1$OPRENAFL <- as.factor(LOIOddsRatio1$OPRENAFL)
LOIOddsRatio1$ModifiedFrailtyIndex5 <- as.factor(LOIOddsRatio1$ModifiedFrailtyIndex5)
LOIOddsRatio1$SEX = relevel(LOIOddsRatio1$SEX, ref="male")
LOIOddsRatio1$BMILabled = relevel(LOIOddsRatio1$BMILabled, ref="Normal Weight")
LOIOddsRatio1$RACE_NEW = relevel(LOIOddsRatio1$RACE_NEW, ref="White")
LOIOddsRatio1$DYSPNEA = relevel(LOIOddsRatio1$DYSPNEA, ref="No")
LOIOddsRatio1$OPRENAFL = relevel(LOIOddsRatio1$OPRENAFL, ref="No Complication")
LOIOddsRatio1$ModifiedFrailtyIndex5 = relevel(LOIOddsRatio1$ModifiedFrailtyIndex5, ref="0")
```
```{r}
####Multivariant analysis serious complications
MVOR <-
glm(LOIOR ~ AgeB + SEX + BMILabled+ RACE_NEW + STEROID + ASACLAS + ASCITES + DYSPNEA + SMOKE + DIALYSIS + OPRENAFL + ModifiedFrailtyIndex5 + ProcedureGroup ,
data = LOIOddsRatio1,
family = binomial("logit"),
na.action =na.omit)
```
```{r}
###continue on to merge the table sets
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
```
```{r}
tbl_merge(
list(UV, MVORTable),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(pROC)
library(rms)
library(mice)
library(VIM)
library(aod)
library(nnet)
library(ROCR)
library(devtools)
library(mice, warn.conflicts = FALSE)
install.packages("mice")
install.packages("devtools")
md.pattern(LOIOddsRatio1)
LOIImputed <-mice(LOIOddsRatio1)
NSQIPRiskCalculatorDF <-
LOIOddsRatio1 %>%
select(LOIOR, AgeB, SEX, BMILabled, RACE_NEW, STEROID,ASACLAS, ASCITES, DYSPNEA, SMOKE, DIALYSIS, OPRENAFL)
NSQIPRiskCalculatorDF <-
NSQIPRiskCalculatorDF %>%
remove_missing()
PortlandDF <-
LOIOddsRatio1 %>%
select(LOIOR, AgeB, SEX, RACE_NEW, ModifiedFrailtyIndex5, ProcedureGroup)
PortlandDF <-
PortlandDF %>%
remove_missing()
NSQIPRiskCalculatorModel <-
glm(LOIOR~AgeB+SEX+BMILabled+RACE_NEW+STEROID+ASACLAS+ASCITES+DYSPNEA+SMOKE+DIALYSIS+OPRENAFL, family = binomial(link = "logit"), data = NSQIPRiskCalculatorDF)
NSQIPPredict=predict(NSQIPRiskCalculatorModel)
NSQIPPredictModel1=prediction(NSQIPPredict, NSQIPRiskCalculatorDF$LOIOR)
plot(performance(NSQIPPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(NSQIPPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
auc=performance(NSQIPPredictModel1,"auc")
unlist(slot(auc,"y.values"))
PortlandModel <-
glm(LOIOR~AgeB+SEX+ModifiedFrailtyIndex5+ProcedureGroup, family = binomial(link = "logit"), data = PortlandDF)
PortlandPredict=predict(PortlandModel)
PortlandPredictModel1=prediction(PortlandPredict, PortlandDF$LOIOR)
plot(performance(PortlandPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(PortlandPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
auc=performance(PortlandPredictModel1,"auc")
unlist(slot(auc,"y.values"))
Document
FRS Project: Demographic Table
By: Abdimajid Mohamed
load("FRSNomogram.RData")
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
## ── Attaching packages ──────────────────────────────────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.3 ✓ purrr 0.3.4
## ✓ tibble 3.0.3 ✓ stringr 1.4.0
## ✓ tidyr 1.1.1 ✓ forcats 0.5.0
## ✓ readr 1.3.1
## ── Conflicts ─────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(broom)
library(ggplot2)
library(survminer)
## Loading required package: ggpubr
library(pROC)
## Type 'citation("pROC")' for a citation.
##
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
library(rms)
## Loading required package: Hmisc
## Loading required package: lattice
## Loading required package: Formula
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:dplyr':
##
## src, summarize
## The following objects are masked from 'package:base':
##
## format.pval, units
## Loading required package: SparseM
##
## Attaching package: 'SparseM'
## The following object is masked from 'package:base':
##
## backsolve
library(VIM)
## Loading required package: colorspace
##
## Attaching package: 'colorspace'
## The following object is masked from 'package:pROC':
##
## coords
## Loading required package: grid
## VIM is ready to use.
## Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
##
## Attaching package: 'VIM'
## The following object is masked from 'package:datasets':
##
## sleep
library(rmarkdown)
library(ROCR)
Creating Demographic Table: Creating Serious Complication and Any Complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
FRSDemo2 <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
FRSDemo2$DOpertoD[is.na(FRSDemo2$DOpertoD)] <- "No"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 0] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 1] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 10] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 11] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 12] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 13] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 14] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 15] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 16] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 18] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 19] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 21] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 22] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 23] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 24] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 25] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 26] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 27] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 28] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 29] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 3] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 30] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 4] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 5] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 6] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 7] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 9] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 17] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 2] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 8] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 20] <- "Yes"
FRSDemotable <-
FRSDemo2 %>%
select(Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, DPRBILI, PRALBUM, SeriousComplication, AnyComplication, PAN_CHEMO, CPT)
FRSDemoTableFinal <-
subset(FRSDemotable, CPT == "48153" | CPT == "48154")
var_label(FRSDemoTableFinal$RACE_NEW) <- "Race"
var_label(FRSDemoTableFinal$ASACLAS) <- "ASA Classification"
var_label(FRSDemoTableFinal$SEX) <- "Sex"
var_label(FRSDemoTableFinal$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemoTableFinal$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemoTableFinal$DOpertoD) <- "Mortality"
var_label(FRSDemoTableFinal$DIABETES) <- "Diabetes"
var_label(FRSDemoTableFinal$SeriousComplication) <- "Serious Complication"
var_label(FRSDemoTableFinal$AnyComplication) <- "Any Complication"
var_label(FRSDemoTableFinal$PAN_CHEMO) <- "Neoadjuvant Treatment"
var_label(FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC) <- "Pathology"
var_label(FRSDemoTableFinal$DPRBILI) <- "Preop Bilirubin"
###Recoding Pathology
FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC[FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC =="Other type"] <- NA
FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC[FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC =="N/A"] <- NA
FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC[FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC =="Unknown"] <- NA
FRSDemoTableFinal1[FRSDemoTableFinal1 =="Unknown"] <- NA
FRSDemoTableFinal1 %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**CR-POPF*") %>%
bold_labels()
## There was an error in 'add_p()' for variable 'PAN_MALIG_HISTOLOGIC', p-value omitted:
## Error in stats::fisher.test(data[[variable]], as.factor(data[[by]])): FEXACT error 7(location). LDSTP=17820 is too small for this problem,
## (pastp=143.358, ipn_0:=ipoin[itp=592]=3520, stp[ipn_0]=178.431).
## Increase workspace or consider using 'simulate.p.value=TRUE'
Variable Overall, N = 5,9751 *CR-POPF p-value2
CR-POPF, N = 1,0181 No CR-POPF, N = 4,9571
PAN_FISTULA <0.001
Biochemical Leak 77 (1.3%) 0 (0%) 77 (1.6%)
ISGPS Grade B 932 (16%) 932 (92%) 0 (0%)
ISGPS Grade C 86 (1.4%) 86 (8.4%) 0 (0%)
No Fistula 4,880 (82%) 0 (0%) 4,880 (98%)
Age 66.00 (58.00, 73.00) 66.00 (58.00, 72.00) 66.00 (58.00, 73.00) 0.10
SEX <0.001
female 2,881 (48%) 430 (42%) 2,451 (49%)
male 3,094 (52%) 588 (58%) 2,506 (51%)
BMI 26.52 (23.33, 30.37) 27.97 (24.67, 31.71) 26.21 (23.08, 29.95) <0.001
RACE_NEW 0.022
Black 499 (9.2%) 63 (6.9%) 436 (9.6%)
Other 303 (5.6%) 46 (5.0%) 257 (5.7%)
White 4,643 (85%) 803 (88%) 3,840 (85%)
Unknown 530 106 424
PAN_GLANDTEXT <0.001
Hard 1,918 (40%) 144 (17%) 1,774 (44%)
Intermediate 580 (12%) 80 (9.6%) 500 (13%)
Soft 2,321 (48%) 608 (73%) 1,713 (43%)
Unknown 1,156 186 970
PAN_DUCTSIZE <0.001
<3 mm 1,488 (30%) 380 (44%) 1,108 (27%)
>6 mm 752 (15%) 73 (8.5%) 679 (16%)
3-6 mm 2,782 (55%) 405 (47%) 2,377 (57%)
Unknown 953 160 793
DIABETES 1,572 (26%) 215 (21%) 1,357 (27%) <0.001
PAN_CHEMO 1,032 (17%) 102 (10%) 930 (19%) <0.001
Unknown 19 1 18
PAN_RADIO 343 (5.8%) 32 (3.1%) 311 (6.3%) <0.001
Unknown 24 2 22
PAN_MALIG_HISTOLOGIC
Ampullary carcinoma 478 (11%) 119 (17%) 359 (9.6%)
Cystadenocarcinoma 1 (<0.1%) 0 (0%) 1 (<0.1%)
Distal cholangiocarcinoma 167 (3.8%) 42 (5.9%) 125 (3.4%)
Duodenal carcinoma 126 (2.8%) 24 (3.4%) 102 (2.7%)
IPMN-invasive 121 (2.7%) 21 (3.0%) 100 (2.7%)
Neuroendocrine-functioning 58 (1.3%) 23 (3.2%) 35 (0.9%)
Neuroendocrine-nonfunctioning 306 (6.9%) 89 (13%) 217 (5.8%)
Pancreatic adenocarcinoma 3,181 (72%) 392 (55%) 2,789 (75%)
Unknown 1,537 308 1,229
ASACLAS 0.53
I-II 1,316 (22%) 216 (21%) 1,100 (22%)
III-IV 4,656 (78%) 801 (79%) 3,855 (78%)
Unknown 3 1 2
DOpertoD 86 (1.4%) 21 (2.1%) 65 (1.3%) 0.091
DPRBILI 8.00 (4.00, 16.00) 8.00 (4.00, 16.00) 8.00 (4.00, 16.00) 0.29
Unknown 226 41 185
SeriousComplication 1,422 (24%) 611 (60%) 811 (16%) <0.001
AnyComplication 1,672 (28%) 652 (64%) 1,020 (21%) <0.001
CPT 0.36
48153 5,780 (97%) 990 (97%) 4,790 (97%)
48154 195 (3.3%) 28 (2.8%) 167 (3.4%)
ChemoOnly 708 (12%) 70 (6.9%) 638 (13%) <0.001
Unknown 27 2 25
1 Statistics presented: n (%); Median (IQR)
2 Statistical tests performed: chi-square test of independence; Wilcoxon rank-sum test
Odds Ratio Code
FRSOddsRatio <-
FRSDemoTableFinal %>%
mutate(FRSDemoTableFinal1, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
FRSOddsRatio1 <-
FRSOddsRatio %>%
select(Fistula.Grade, Age, SEX, BMIB, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, DPRBILI, PRALBUM, SeriousComplication, AnyComplication, PAN_CHEMO)
FRSOddsRatio2 <-
mutate(FRSOddsRatio1, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
FRSOddsRatio3 <-
mutate(FRSOddsRatio2, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma", "Other"))
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio3$Pathology[FRSOddsRatio3$Pathology =="NA"] <- NA
### recoding ASA none assigned --> NA
FRSOddsRatio3$ASACLAS[FRSOddsRatio3$ASACLAS =="None assigned"] <- NA
###recode Unknown to NA panductoriginal
FRSOddsRatio3$PAN_DUCTSIZE[FRSOddsRatio3$PAN_DUCTSIZE =="Unknown"] <- NA
FRSOddsRatio3$FistulaOddsRatio <- as.numeric(FRSOddsRatio3$FistulaOddsRatio)
FRSOddsRatio3[FRSOddsRatio3 =="Unknown"] <- NA
UV <- FRSOddsRatio3 %>%
select(Age, SEX, BMIB, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, Pathology, ASACLAS, DPRBILI, PRALBUM, FistulaOddsRatio, PAN_CHEMO) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ Age + SEX + BMIB + RACE_NEW + PAN_GLANDTEXT + PAN_DUCTSIZE + DIABETES + Pathology + ASACLAS + DPRBILI + PRALBUM + PAN_CHEMO,
data = FRSOddsRatio3,
family = binomial("logit"),
na.action =na.omit)
###continue on to merge the table sets
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVORTable),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Characteristic Univariable Multivariable
N OR1 95% CI1 p-value OR1 95% CI1 p-value
Age 5,975 0.99 0.99, 1.00 0.048 1.00 0.99, 1.01 0.41
SEX 5,975
female — — — —
male 1.34 1.17, 1.53 <0.001 1.59 1.29, 1.98 <0.001
BMIB 5,975
Non-Obese — — — —
Obese 1.71 1.48, 1.97 <0.001 1.66 1.32, 2.09 <0.001
RACE_NEW 5,445
Black — — — —
Other 1.24 0.82, 1.86 0.31 1.06 0.57, 1.94 0.86
White 1.45 1.11, 1.92 0.008 1.41 0.95, 2.15 0.10
PAN_GLANDTEXT 4,819
Hard — — — —
Intermediate 1.97 1.47, 2.63 <0.001 1.76 1.20, 2.56 0.003
Soft 4.37 3.61, 5.32 <0.001 3.18 2.43, 4.19 <0.001
PAN_DUCTSIZE 5,022
<3 mm — — — —
>6 mm 0.31 0.24, 0.41 <0.001 0.52 0.34, 0.78 0.002
3-6 mm 0.50 0.42, 0.58 <0.001 0.63 0.50, 0.79 <0.001
DIABETES 5,975
No — — — —
Yes 0.71 0.60, 0.83 <0.001 0.83 0.64, 1.07 0.15
Pathology 4,438
Other — — — —
Pancreatic Adenocarcinoma 0.42 0.35, 0.49 <0.001 0.68 0.54, 0.85 <0.001
ASACLAS 5,972
I-II — — — —
III-IV 1.06 0.90, 1.25 0.50 1.00 0.77, 1.30 0.98
DPRBILI 5,749 1.00 1.00, 1.01 0.76 1.00 0.99, 1.01 0.88
PRALBUM 5,632 1.38 1.22, 1.56 <0.001 1.20 0.99, 1.46 0.070
PAN_CHEMO 5,956
No — — — —
Yes 0.48 0.38, 0.59 <0.001 0.71 0.51, 0.98 0.042
1 OR = Odds Ratio, CI = Confidence Interval
FRSObject2 <- kNN(FRSOddsRatio3)
FRSObject2 <- subset(FRSObject2, select = Fistula.Grade:Pathology)
SeoulFRS <-
FRSObject2 %>%
select(FistulaOddsRatio, ASACLAS, BMIB, PAN_DUCTSIZE, ASACLAS, PRALBUM)
AdjustedFRS <-
FRSObject2 %>%
select(FistulaOddsRatio, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE)
PortlandFRS <-
FRSObject2 %>%
select(FistulaOddsRatio, SEX,PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, Pathology, PAN_CHEMO, PRALBUM)
var_label(PortlandFRS$SEX) <- "Sex"
var_label(PortlandFRS$PAN_DUCTSIZE) <- "Duct Size"
var_label(PortlandFRS$PAN_GLANDTEXT) <- "Gland Texture"
var_label(PortlandFRS$BMIB) <- "BMI"
var_label(PortlandFRS$PAN_CHEMO) <- "Neoadjuvant Tx"
var_label(PortlandFRS$PRALBUM) <- "Preop Albumin"
var_label(PortlandFRS$PAN_GLANDTEXT) <- "Gland Texture"
PortlandFRS$SEX[PortlandFRS$SEX =="male"] <- "Male"
PortlandFRS$SEX[PortlandFRS$SEX =="female"] <- "Female"
AdjustedModel <-
glm(FistulaOddsRatio~PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB, family = binomial(link = "logit"), data = AdjustedFRS)
AdjPredictModel=predict(AdjustedModel)
AdjPredictModel1=prediction(AdjPredictModel, AdjustedFRS$FistulaOddsRatio)
plot(performance(AdjPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
##calculate accuracy of above
x=performance(AdjPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
## [1] 0.8296234
auc=performance(AdjPredictModel1,"auc")
unlist(slot(auc,"y.values"))
## [1] 0.7037542
ci.auc(AdjustedFRS$FistulaOddsRatio, AdjPredictModel)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## 95% CI: 0.6874-0.7201 (DeLong)
SeoulModel <-
glm(FistulaOddsRatio~ASACLAS+PAN_DUCTSIZE+BMIB+PAN_DUCTSIZE+PRALBUM, family = binomial(link = "logit"), data = SeoulFRS)
SeoulPredictModel=predict(SeoulModel)
SeoulPredictModel1=prediction(SeoulPredictModel, SeoulFRS$FistulaOddsRatio)
plot(performance(SeoulPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
x=performance(SeoulPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
## [1] 0.8297908
auc=performance(SeoulPredictModel1,"auc")
unlist(slot(auc,"y.values"))
## [1] 0.6440038
ci.auc(SeoulFRS$FistulaOddsRatio, SeoulPredictModel)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## 95% CI: 0.6254-0.6626 (DeLong)
##AUC Model Running for Portland FRS AUC
PortlandModel <-
glm(FistulaOddsRatio~SEX+Pathology+PAN_CHEMO+PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB+PRALBUM, family = binomial(link = "logit"), data = PortlandFRS)
Pr_model=predict(PortlandModel)
Pr_model1=prediction(Pr_model, PortlandFRS$FistulaOddsRatio)
plot(performance(Pr_model1,"tpr","fpr",)) %>%
abline(a=0,b=1)
##calculate accuracy of above
x=performance(Pr_model1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
## [1] 0.8299582
auc=performance(Pr_model1,"auc")
unlist(slot(auc,"y.values"))
## [1] 0.7211847
ci.auc(PortlandFRS$FistulaOddsRatio, Pr_model)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
## 95% CI: 0.7049-0.7375 (DeLong)
###Nomogram build
ddist <- datadist(PortlandFRS)
options(datadist = 'ddist')
mod.bi <-
lrm(FistulaOddsRatio~SEX+PAN_GLANDTEXT+BMIB+PAN_DUCTSIZE+PAN_CHEMO+Pathology, PortlandFRS)
nom.bi <- nomogram(mod.bi,
lp.at = seq(-3,4, by=.5),
fun = function(x)1/(1+exp(-x)),
fun.at = c(.001,.01,.05,seq(.1,.9,by=.1),.95,.99,.999),
funlabel = "Risk of Fistula",
conf.int = c(0.1,0.7),
abbrev = T,
minlength = 100,
maxscale = 100)
plot(nom.bi,lplabel="Linear Predictor",
fun.side=c(3,3,1,1,3,1,3,1,1,1,1,1,3),
conf.space=c(0.1,0.5),
label.every=1,
col.grid=gray(c(0.8,0.95)),
which="shock")
Table to code procedures: Loss of Independence paper
https://tufts.zoom.us/j/96762238856
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NSQIPALLYEARS <- read.csv ("NSQIPALLYEARS.CSV", header = TRUE, sep = "," )
table(NSQIPALLYEARS$SURGSPEC)
##subset surgspec patients only general surgery patients
NSQIPGENSURG <-
subset(NSQIPALLYEARS, SURGSPEC == "General Surgery")
###Subset patients as inpatient, elective, independent status,
NSQIPInpatient <-
subset(NSQIPGENSURG, INOUT == "Inpatient")
NSQIPElective <-
subset(NSQIPInpatient, ELECTSURG == "Yes")
NSQIPFinal <-
subset(NSQIPElective, FNSTATUS2 == "Independent")
NSQIPDemoTable <-
NSQIPFinal %>%
select(PRNCPTX, SEX)
NSQIPDemoTable %>%
tbl_summary(
by = SEX,
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") ~ "**NSQIP Table*") %>%
bold_labels()
publish(NSQIPFinal$PRNCPTX)
##Recoding Procedures into Hep
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Hep"
##Recoding Procedures into Pan
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Pan"
##Recoding Procedures into Colorectal (col+pro)
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="APPENDEC INDICATED PURPOSE OTH MAJOR PX NOT SPX"] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="APPENDEC RPTD APPENDIX ABSC/PRITONITIS"] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "CRC"
##Recoding Procedures into Gastric
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="ANAST ROUX-EN-Y INTRAHEPATC BILIARY DUCTS & GI"] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="ANAST ROUX-EN-Y XTRHEPATC BILIARY DUCTS & GI"] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="ANAST XTRHEPATC BILIARY DUCTS & GI TRACT"] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Gastric"
##Recoding Procedures into Other
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMP LEG THRU TIBFIB W/IMMT FITG TQ W/1ST CST"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMP LEG THRU TIBIA&FIBULA RE-AMPUTATION"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMP LEG THRU TIBIA&FIBULA SEC CLOSURE/SCAR REV"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMP MTCRPL W/FINGER/THUMB W/WO INTEROSS TRANSFER"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMP THI THRU FEMUR LVL IMMT FITG TQ W/1ST CST"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMP THIGH THRU FEMUR SEC CLOSURE/SCAR REVISION"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION ARM THRU HUMERUS OPEN CIRCULAR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION ARM THRU HUMERUS W/PRIMARY CLOSURE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION FOOT MIDTARSAL"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION FOOT TRANSMETARSAL"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION FOREARM THROUGH RADIUS & ULNA"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION LEG THROUGH TIBIA&FIBULA"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION LEG THRU TIBIA&FIBULA OPEN CIRCULAR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION PENIS COMPLETE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION PENIS PARTIAL"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION THIGH THROUGH FEMUR ANY LEVEL"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION THIGH THROUGH FEMUR RE-AMPUTATION"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="AMPUTATION THIGH THRU FEMUR OPEN CIRCULAR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="ANAST ARTL EXTRACRANIAL-INTRACRANIAL ARTERIES"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="ANKLE DISARTICULATION"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="ANT COLPORRHAPHY CYSTOCELE W/WO RPR URETHROCELE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="ANT VESICOURETHROPEXY/URETHROPEXY SMPL"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="STG DSTL HYPOSPADIAS RPR W/URTP SKIN FLAPS"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EVASC RPR DTA COVERAGE ART ORIGIN 1ST ENDOPROSTH"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EVASC RPR DTA EXP COVERAGE W/O ART ORIGIN"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EVASC RPR ILIAC ART ILIO-ILIAC PROSTHESIS"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC BARTHOLINS GLAND/CYST"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC BENIGN TUM CRANIAL BONE W/O OPTIC NRV DCMPRN"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC BENIGN TUMOR/CYST MAXL INTRA-ORAL OSTEOT"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC BENIGN TUMOR/CYST MNDBL INTRA-ORAL OSTEOT"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC BRANCHIAL CLEFT CYST BELOW SUBQ TISS&/PHRYNX"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC BRANCHIAL CLEFT CYST CONFINED SKN&SUBQ TIS"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC BREAST LES PREOP PLMT RAD MARKER OPEN 1 LES"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC BRST LES PREOP PLMT RAD MARKER OPN EA ADDL"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CAROTID BODY TUMOR W EXC CAROTID ARTERY"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CAROTID BODY TUMOR W/O EXC CAROTID ARTERY"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CHEST TUMOR W/RCNSTJ W/MEDSTNL LMPHADEC"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CHEST TUMOR W/RCNSTJ W/O MEDSTNL LMPHADEC"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CSTIC HYGROMA AX/CRV W/DP NEUROVASC DSJ"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CSTIC HYGROMA AX/CRV W/O DP NEUROVASC DSJ"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CYST/ABERRANT BREAST TISSUE OPEN 1/> LESION"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CYST/ADENOMA THYROID/TRANSECTION ISTHMUS"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CYST/ADENOMA THYROID/TRANSECTION ISTHMUS"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EVASC RPR DPLMNT ILIO-ILIAC NDGFT"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EVASC RPR DPLMNT AORTO-UN-ILIAC NDGFT RPT"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EVASC RPR DPLMNT ILIO-ILIAC NDGFT"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC B9 TUM/CST MAXL XTR-ORAL OSTEOT&PRTL MAXLC"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC B9 TUM/CST MNDBL XTR-ORAL OSTEOT&PRTL MNDB"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC CONSTRICTING RING FNGR W/MLT Z-PLASTIES"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC FLXR TDN W/IMPLTJ SYNTH ROD DLYD TDN GRF H/F"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC FRENUM LABIAL/BUCCAL"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC ISCHIAL PR ULC W/PRIM SUTR W/OSTC ISCHIECT"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC ISCHIAL PR ULC W/SKN FLAP CLSR W/OSTECTOMY"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC ISCHIAL PR ULCER W/OSTC MUSC/MYOQ FLAP/SKIN"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC ISCHIAL PRESSURE ULCER W/PRIMARY SUTURE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC ISCHIAL PRESSURE ULCER W/SKIN FLAP CLOSURE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LES MUCOSA & SBMCSL VESTIBULE MOUTH W/O RPR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION ESOPHAGUS W/PRIM RPR THRC/ABDL APPR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION ESOPHOGUS W/PRIM RPR CERVICAL APPR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION MUCOSA & SBMCSL VESTIBULE CPLX RPR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION ESOPHAGUS W/PRIM RPR THRC/ABDL APPR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION MUCOSA&SBMCSL VESTIBULE CPLX EXC MUSC"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION PALATE UVULA W/LOCAL FLAP CLOSURE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION PALATE UVULA W/O CLOSURE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION PALATE UVULA W/SMPL PRIM CLOSURE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION TONGUE W/CLSR ANTERIOR TWO-THIRDS"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION PALATE UVULA W/O CLOSURE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION PALATE UVULA W/SMPL PRIM CLOSURE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION TONGUE W/CLSR ANTERIOR TWO-THIRDS"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION TONGUE W/CLSR POSTERIOR ONE-THIRD"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION TONGUE W/CLSR W/LOCAL TONGUE FLAP"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION/TUMOR DENTOALVEOLAR STRUX W/O RPR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LESION/TUMOR DENTOALVEOLAR STRUX W/SMPL RPR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LIP FULL THKNS RCNSTJ W/CROSS LIP FLAP"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LIP FULL THKNS RCNSTJ W/LOCAL FLAP"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LIP TRANSVRS WEDGE EXC W/PRIM CLSR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC LIP V-EXC W/PRIM DIR LINR CLSR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC OSS TUBEROSITIES DENTOALVEOLAR STRUXS"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC PENILE PLAQUE GRAFT &/5 CM LENGTH"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC PRESAC/SACROCOCCYGEAL TUMOR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC PRTD TUM/PRTD GLND LAT DSJ&PRSRV FACIAL NR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC PRTD TUM/PRTD GLND LAT LOBE W/O NRV DSJ"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC PRTD TUM/PRTD GLND TOT W/UNI RAD NCK DSJ"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC RCT PROCIDENTIA W/ANAST ABDL & PRNL APPROACH"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC RCT PROCIDENTIA W/ANAST PERINEAL APPROACH"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC SAC PR ULC PREPJ MUSC/MYOQ FLAP/SKN GRF CLSR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC SAC PR ULC PREPJ MUSC/MYOQ FLAP/SKN GRF OSTC"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC SACRAL PR ULCER W/SKN FLAP CLSR W/OSTECTOMY"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TROCHANTERIC PR ULCER MUSC/MYOQ FLAP/SKIN"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TROCHANTERIC PR ULCER W/SKIN FLAP CLOSURE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TROCHANTERIC PRESSURE ULCER W/PRIMARY SUTR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TUMOR SFT TISS FOREARM&/WRIST SUBFASC 3CM/>"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TUMOR SOFT TISS FOREARM&/WRIST SUBFASC <3CM"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TUMOR SOFT TISS UPPER ARM/ELBOW SUBQ <3CM"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TUMOR SOFT TISS UPR ARM/ELBOW SUBFASC <5CM"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TUMOR SOFT TISSUE LEG/ANKLE SUBFASCIAL <5CM"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TUMOR SOFT TISSUE PELVIS & HIP SUBFASC <5CM"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TUMOR SOFT TISSUE PELVIS & HIP SUBQ <3CM"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC TUMOR SOFT TISSUE THIGH/KNEE SUBFASC <5CM"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC URACHAL CYST/SINUS W/WO UMBILICAL HERNIA RPR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC URETHRAL DIVERTICULUM SPX FEMALE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC URETHRAL DIVERTICULUM SPX MALE"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC VARICOCELE/LIGATION SPERMATIC VEINS ABDL"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC VARICOCELE/LIGATION SPERMATIC VEINS SPX"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC VARICOCELE/LIGATION VEINS W/HERNIA RPR"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC/CURTG BONE CYST/BENIGN TUMOR CLAV/SCAPULA"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC/CURTG BONE CYST/BENIGN TUMOR H/N RDS/OLECRN"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC/CURTG BONE CYST/BENIGN TUMOR PROX HUMERUS"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX =="EXC/DSTRJ LINGUAL TONSIL ANY METHOD SPX"] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
NSQIPGENSURG$PRNCPTX[NSQIPGENSURG$PRNCPTX ==""] <- "Other"
Portland FRS Project
---
output:
html_document: default
pdf_document: default
---
# FRS Project: Demographic Table
## By: Abdimajid Mohamed
```{r}
load("FRSNomogram.RData")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(pROC)
library(rms)
library(VIM)
library(rmarkdown)
library(ROCR)
```
**Creating Demographic Table: Creating Serious Complication and Any Complication**
```{r felse function to create new column for serious complication and any complication}
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
```
```{R Completing the Serious Complication or Any Complication Code}
FRSDemo2 <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
```
```{r Recoding mortality}
FRSDemo2$DOpertoD[is.na(FRSDemo2$DOpertoD)] <- "No"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 0] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 1] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 10] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 11] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 12] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 13] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 14] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 15] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 16] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 18] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 19] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 21] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 22] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 23] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 24] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 25] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 26] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 27] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 28] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 29] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 3] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 30] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 4] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 5] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 6] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 7] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 9] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 17] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 2] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 8] <- "Yes"
FRSDemo2$DOpertoD[FRSDemo2$DOpertoD == 20] <- "Yes"
```
```{r Select the necessary variables for the demographic table}
FRSDemotable <-
FRSDemo2 %>%
select(Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, DPRBILI, PRALBUM, SeriousComplication, AnyComplication, PAN_RADIO, PAN_CHEMO, CPT)
```
```{r Separate CPT Codes so that there are only pancreaticduodenectomies}
FRSDemoTableFinal <-
subset(FRSDemotable, CPT == "48153" | CPT == "48154")
```
``` {r Labeling Columns}
var_label(FRSDemoTableFinal$RACE_NEW) <- "Race"
var_label(FRSDemoTableFinal$ASACLAS) <- "ASA Classification"
var_label(FRSDemoTableFinal$SEX) <- "Sex"
var_label(FRSDemoTableFinal$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemoTableFinal$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemoTableFinal$DOpertoD) <- "Mortality"
var_label(FRSDemoTableFinal$DIABETES) <- "Diabetes"
var_label(FRSDemoTableFinal$SeriousComplication) <- "Serious Complication"
var_label(FRSDemoTableFinal$AnyComplication) <- "Any Complication"
var_label(FRSDemoTableFinal$PAN_CHEMO) <- "Preop Chemotherapy"
var_label(FRSDemoTableFinal$PAN_RADIO) <- "Preop Radiation"
var_label(FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC) <- "Pathology"
var_label(FRSDemoTableFinal$DPRBILI) <- "Preop Bilirubin"
```
```{r Channge other type and n/a to NA }
###Recoding Pathology
FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC[FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC =="Other type"] <- NA
FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC[FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC =="N/A"] <- NA
FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC[FRSDemoTableFinal$PAN_MALIG_HISTOLOGIC =="Unknown"] <- NA
```
```{r chemoonly group}
FRSDemoTableFinal1 <-
FRSDemoTableFinal %>%
mutate(FRSDemoTableFinal, ChemoOnly = ifelse(PAN_RADIO == "Yes", "No",
ifelse(PAN_CHEMO == "Yes", "Yes", "No")))
```
```{r all unknowns to NA}
FRSDemoTableFinal1[FRSDemoTableFinal1 =="Unknown"] <- NA
```
```{r Table Summary}
FRSDemoTableFinal1 %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**CR-POPF*") %>%
bold_labels()
```
# Odds Ratio Code
```{r BMI --> Obese and non-obese}
FRSOddsRatio <-
FRSDemoTableFinal %>%
mutate(FRSDemoTableFinal1, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
```
```{r Filter and select}
FRSOddsRatio1 <-
FRSOddsRatio %>%
select(Fistula.Grade, Age, SEX, BMIB, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, DPRBILI, PRALBUM, SeriousComplication, AnyComplication, PAN_RADIO, PAN_CHEMO, ChemoOnly)
```
```{r Create the binary outcome}
FRSOddsRatio2 <-
mutate(FRSOddsRatio1, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
```
```{R recode all the data correctly}
FRSOddsRatio3 <-
mutate(FRSOddsRatio2, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma", "Other"))
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio3$Pathology[FRSOddsRatio3$Pathology =="NA"] <- NA
### recoding ASA none assigned --> NA
FRSOddsRatio3$ASACLAS[FRSOddsRatio3$ASACLAS =="None assigned"] <- NA
###Recoding pancreatic duct diameter
FRSOddsRatio3$PAN_DUCTSIZE[FRSOddsRatio3$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio3$PAN_DUCTSIZE[FRSOddsRatio3$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio3$PAN_GLANDTEXT[FRSOddsRatio3$PAN_GLANDTEXT =="Intermediate"] <- NA
###recode Unknown to NA panductoriginal
FRSOddsRatio3$PAN_DUCTSIZE[FRSOddsRatio3$PAN_DUCTSIZE =="Unknown"] <- NA
FRSOddsRatio3$FistulaOddsRatio <- as.numeric(FRSOddsRatio3$FistulaOddsRatio)
FRSOddsRatio3[FRSOddsRatio3 =="Unknown"] <- NA
table(FRSOddsRatio3$ChemoOnly)
```
```{r Univariant analysis}
UV <- FRSOddsRatio3 %>%
select(Age, SEX, BMIB, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, Pathology, ASACLAS, DPRBILI, PRALBUM, FistulaOddsRatio,ChemoOnly) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ Age + SEX + BMIB + RACE_NEW + PAN_GLANDTEXT + PAN_DUCTSIZE + DIABETES + Pathology + ASACLAS + DPRBILI + PRALBUM+ ChemoOnly,
data = FRSOddsRatio3,
family = binomial("logit"),
na.action =na.omit
)
###continue on to merge the table sets
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVORTable),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
```
```{r Impute the missing data}
FRSObject2 <- kNN(FRSOddsRatio3)
FRSObject2 <- subset(FRSObject2, select = Fistula.Grade:Pathology)
```
```{r creating the 3 separate dataframes with cleaned data without NAs (Adjusted, Seoul, Porltand FRS) to calculate AUC}
SeoulFRS <-
FRSObject2 %>%
select(FistulaOddsRatio, ASACLAS, BMIB, PAN_DUCTSIZE, ASACLAS, PRALBUM)
AdjustedFRS <-
FRSObject2 %>%
select(FistulaOddsRatio, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE)
PortlandFRS <-
FRSObject2 %>%
select(FistulaOddsRatio, SEX,PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, Pathology, ChemoOnly, PRALBUM)
var_label(PortlandFRS$SEX) <- "Sex"
var_label(PortlandFRS$PAN_DUCTSIZE) <- "Duct Size"
var_label(PortlandFRS$PAN_GLANDTEXT) <- "Gland Texture"
var_label(PortlandFRS$BMIB) <- "BMI"
var_label(PortlandFRS$ChemoOnly) <- "Chemotherapy"
var_label(PortlandFRS$PRALBUM) <- "Preop Albumin"
var_label(PortlandFRS$PAN_GLANDTEXT) <- "Gland Texture"
PortlandFRS$SEX[PortlandFRS$SEX =="male"] <- "Male"
PortlandFRS$SEX[PortlandFRS$SEX =="female"] <- "Female"
```
```{r creating the predictive models Adjusted}
AdjustedModel <-
glm(FistulaOddsRatio~PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB, family = binomial(link = "logit"), data = AdjustedFRS)
AdjPredictModel=predict(AdjustedModel)
AdjPredictModel1=prediction(AdjPredictModel, AdjustedFRS$FistulaOddsRatio)
plot(performance(AdjPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
```
```{r calculate accuracy of above}
##calculate accuracy of above
x=performance(AdjPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
auc=performance(AdjPredictModel1,"auc")
unlist(slot(auc,"y.values"))
```
```{r confidence interval score}
ci.auc(AdjustedFRS$FistulaOddsRatio, AdjPredictModel)
```
```{r creating the predictive models (Adjusted) }
SeoulModel <-
glm(FistulaOddsRatio~ASACLAS+PAN_DUCTSIZE+BMIB+PAN_DUCTSIZE+PRALBUM, family = binomial(link = "logit"), data = SeoulFRS)
SeoulPredictModel=predict(SeoulModel)
SeoulPredictModel1=prediction(SeoulPredictModel, SeoulFRS$FistulaOddsRatio)
plot(performance(SeoulPredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
```
```{r AUC score calculate accuracy of above}
x=performance(SeoulPredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
auc=performance(SeoulPredictModel1,"auc")
unlist(slot(auc,"y.values"))
```
```{r calculate the confidence interval}
ci.auc(SeoulFRS$FistulaOddsRatio, SeoulPredictModel)
```
```{r creating the predictive models (Portland) }
##AUC Model Running for Portland FRS AUC
PortlandModel <-
glm(FistulaOddsRatio~SEX+Pathology+ChemoOnly+PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB+PRALBUM, family = binomial(link = "logit"), data = PortlandFRS)
Pr_model=predict(PortlandModel)
Pr_model1=prediction(Pr_model, PortlandFRS$FistulaOddsRatio)
plot(performance(Pr_model1,"tpr","fpr",)) %>%
abline(a=0,b=1)
```
```{r AUC score: calculate accuracy of above}
##calculate accuracy of above
x=performance(Pr_model1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
auc=performance(Pr_model1,"auc")
unlist(slot(auc,"y.values"))
```
```{r confidence interval}
ci.auc(PortlandFRS$FistulaOddsRatio, Pr_model)
```
```{r Building the nomogram of the PortlandFRS}
###Nomogram build
ddist <- datadist(PortlandFRS)
options(datadist = 'ddist')
mod.bi <-
lrm(FistulaOddsRatio~SEX+PAN_GLANDTEXT+BMIB+PAN_DUCTSIZE+ChemoOnly+Pathology, PortlandFRS)
nom.bi <- nomogram(mod.bi,
lp.at = seq(-3,4, by=.5),
fun = function(x)1/(1+exp(-x)),
fun.at = c(.001,.01,.05,seq(.1,.9,by=.1),.95,.99,.999),
funlabel = "Risk of Fistula",
conf.int = c(0.1,0.7),
abbrev = T,
minlength = 100,
maxscale = 100)
plot(nom.bi,lplabel="Linear Predictor",
fun.side=c(3,3,1,1,3,1,3,1,1,1,1,1,3),
conf.space=c(0.1,0.5),
label.every=1,
col.grid=gray(c(0.8,0.95)),
which="shock")
```
RIsk of Fistula Nomogram
install.packages("rms")
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(pROC)
library(rms)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, SeriousComplication, AnyComplication )
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
##Add column cpt code to demotable
FRSDemotable <-
cbind(FRSDemotable, CPT = FRSDemo$CPT)
###subsetting only pancreaticoduodenectomy
FRSDemoTableFinal <-
subset(FRSDemotable, CPT == "48153" | CPT == "48154")
###chemoOnly group
FRSDemoTableFinal1 <-
FRSDemoTableFinal %>%
mutate(FRSDemoTableFinal, ChemoOnly = ifelse(PAN_RADIO == "Yes", "No",
ifelse(PAN_CHEMO == "Yes", "Yes", "No")))
#Final Step to create demographic table
FRSDemoTableFinal1 %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**Clinically Relevant Postoperative Pancreatic Fistula*") %>%
bold_labels()
#### Coding for Odds Ratio all below
FRSOddsRatio <-
FRSDemoTableFinal1 %>%
mutate(FRSDemoTableFinal1, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Change CRPOPF to an event "1"
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
mutate(FRSOddsRatio1, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs other
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma", "Other"))
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
###recode Unknown to NA panductoriginal
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="Unknown"] <- NA
##Univariant Model Seriouscomplication
UV <- CompleteFRS %>%
select(FistulaOddsRatio, SEX, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, PAN_CHEMO, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ SEX + PAN_GLANDTEXT + PAN_DUCTSIZE + BMIB + PAN_CHEMO + PAN_RADIO + Pathology,
data = CompleteFRS,
family = binomial("logit"),
na.action =na.omit
)
broom::tidy(MVOR, exponentiate = T, conf.int = T)
###continue on to merge the table sets
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVORTable),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
###Creating AUC graphs
install.packages('aod')
install.packages('ggplot2')
library(aod)
library(ggplot2)
#Logistic Regression Model
install.packages("nnet")
library(nnet)
##remove missing so that we can run the model to do the AUC and create 2 dataframes for two separate models
CompleteFRS <-
FRSOddsRatio1 %>%
select(FistulaOddsRatio, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, Pathology, PAN_CHEMO, SEX, PAN_RADIO)
CompleteFRS <-
CompleteFRS %>%
remove_missing()
AdjustedFRS <-
CompleteFRS %>%
select(FistulaOddsRatio, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE)
PortlandFRS <-
CompleteFRS %>%
select(FistulaOddsRatio, SEX,PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, Pathology, PAN_CHEMO)
PortlandFRS <-
PortlandFRS %>%
remove_missing()
##AUC Model Running for Adjusted FRS AUC
AdjustedModel <-
glm(FistulaOddsRatio~PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB, family = binomial(link = "logit"), data = AdjustedFRS)
PredictModel=predict(AdjustedModel)
PredictModel1=prediction(PredictModel, AdjustedFRS$FistulaOddsRatio)
plot(performance(PredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
##calculate accuracy of above
x=performance(PredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
abline(a=0,b=1)
auc=performance(PredictModel1,"auc")
unlist(slot(auc,"y.values"))
ci.auc(AdjustedFRS$FistulaOddsRatio, PredictModel)
##AUC for Adjusted and CI
##another way to get the AUC and CI for adjusted
AdjustedRocObj <- roc(AdjustedFRS$FistulaOddsRatio, PredictModel)
print(AdjustedRocObj$auc)
print(ci(AdjustedRocObj))
##AUC Model Running for Portland FRS AUC
PortlandModel <-
glm(FistulaOddsRatio~SEX+Pathology+PAN_CHEMO+PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB, family = binomial(link = "logit"), data = PortlandFRS)
Pr_model=predict(PortlandModel)
Pr_model1=prediction(Pr_model, PortlandFRS$FistulaOddsRatio)
plot(performance(Pr_model1,"tpr","fpr",)) %>%
abline(a=0,b=1)
##another way to get the AUC and CI
PortlandRocObj <- roc(PortlandFRS$FistulaOddsRatio, Pr_model)
print(PortlandRocObj$auc)
print(ci(PortlandRocObj))
##calculate accuracy of above
x=performance(Pr_model1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
abline(a=0,b=1)
auc=performance(Pr_model1,"auc")
unlist(slot(auc,"y.values"))
ci.auc(PortlandFRS$FistulaOddsRatio, Pr_model)
#define object to plot
rocobj <- roc(AdjustedFRS$FistulaOddsRatio, PredictModel)
#create ROC plot
ggroc(rocobj)
#define object to plot and calculate AUC
auc <- round(auc(AdjustedFRS$FistulaOddsRatio, PredictModel),4)
#create ROC plot
ggroc(rocobj, colour = 'steelblue', size = 2) +
ggtitle(paste0('ROC Curve ', '(AUC = ', auc, ')'))
?ggroc
###Obtain more data from the model
broom::tidy(ggroc, exponentiate = T, conf.int = T)
####Compare AUC from Adjusted and POrtland
roc_(CompleteFRS$FistulaOddsRatio, PredictModel, plot=T)
wilcox.test(PredictModel)
wilcox.test(Pr_model)
delong
roc.test(predic, PredictModel1, method=c("delong", "bootstrap"))
###Nomogram build
library(rms)
ddist <- datadist(CompleteFRS)
options(datadist = 'ddist')
mod.bi <-
lrm(FistulaOddsRatio~SEX+PAN_GLANDTEXT+BMIB+PAN_DUCTSIZE+PAN_CHEMO+Pathology, CompleteFRS)
nom.bi <- nomogram(mod.bi,
lp.at = seq(-3,4, by=.5),
fun = function(x)1/(1+exp(-x)),
fun.at = c(.001,.01,.05,seq(.1,.9,by=.1),.95,.99,.999),
funlabel = "Risk of Fistula",
conf.int = c(0.1,0.7),
abbrev = T,
minlength = 1)
plot(nom.bi,lplabel="Linear Predictor",
fun.side=c(3,3,1,1,3,1,3,1,1,1,1,1,3),
col.conf=c('red','green'),
conf.space=c(0.1,0.5),
label.every=3,
col.grid=gray(c(0.8,0.95)),
which="shock")
Postop Liver Complications
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
## Importing data CSV
DrainPaper <- read.csv ("Hepfinal.csv", header = TRUE, sep = "," )
### Calculating BMI
DrainPaper$BMI <- (DrainPaper$WEIGHT / DrainPaper$HEIGHT / DrainPaper$HEIGHT) *703
### change age to numeric variable
DrainPaper$Age <- as.numeric(DrainPaper$Age)
#### Creating Morbidly obese, obese and non obese columns
HepDemoTable <-
DrainPaper %>%
mutate(DrainPaper, BMIDT = ifelse(BMI >= 40, "Morbidly Obese",
ifelse(BMI >= 30, "Obese",
ifelse(BMI < 30, "Non-Obese", NA))))
##Ifelse function to create new column for serious complication and any complication
HepDemotable1 <-
mutate(HepDemoTable, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
MorbidObesityDemoTable <-
mutate(HepDemotable1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
MorbidObesityDemoTable$DOpertoD[is.na(MorbidObesityDemoTable$DOpertoD)] <- "No"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 0] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 1] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 10] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 11] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 12] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 13] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 14] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 15] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 16] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 18] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 19] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 21] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 22] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 23] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 24] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 25] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 26] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 27] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 28] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 29] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 3] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 30] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 4] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 5] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 6] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 7] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 9] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 17] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 2] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 8] <- "Yes"
MorbidObesityDemoTable$DOpertoD[MorbidObesityDemoTable$DOpertoD == 20] <- "Yes"
#### Labeling columns
var_label(MorbidObesityDemoTable$RACE_NEW) <- "Race"
var_label(MorbidObesityDemoTable$ASACLAS) <- "ASA Classification"
var_label(MorbidObesityDemoTable$SEX) <- "Sex"
var_label(MorbidObesityDemoTable$DOpertoD) <- "Mortality"
var_label(MorbidObesityDemoTable$SeriousComplication) <- "Serious Complication"
var_label(MorbidObesityDemoTable$AnyComplication) <- "Any Complication"
## Changing any Unknowns/none assigned to NA
MorbidObesityDemoTable[MorbidObesityDemoTable =="None assigned"] <- NA
MorbidObesityDemoTable[MorbidObesityDemoTable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
MorbidObesityDemoTable$ASACLAS[MorbidObesityDemoTable$ASACLAS =="5-Moribund"] <- NA
###Variables I want in Demographic Table
MorbidObesityDT <-
MorbidObesityDemoTable %>%
select(BMIDT, Age, SEX, BMI, RACE_NEW, ASACLAS, DOpertoD, OUPNEUMO,PULEMBOL,RETURNOR,REINTUB,SUPINFEC,FAILWEAN,CNSCVA,DEHIS, PRSEPIS, CDMI, CDARREST, OTHDVT,ORGSPCSSI, SeriousComplication, AnyComplication)
#Final Step to create demographic table
MorbidObesityDT %>%
tbl_summary(
by = BMIDT,
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") ~ "**Obesity Classification*") %>%
bold_labels()
###Change CRPOPF to an event "1"
FRSOddsRatio <-
FRSOddsRatio %>%
mutate(FRSOddsRatio, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs ampullary, duodenal, cystic and islet cell
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma", "Other"))
Maybe add distal choliangio to the above along with ampullary duodenal and cystic ^^^
Also cod duct size to be below and above 3 do something similar with gland texture
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
FRSOddsRatio2 <-
FRSOddsRatio1 %>%
mutate(FRSOddsRatio1, ChemoOnly = ifelse(PAN_RADIO == "Yes", "No",
ifelse(PAN_CHEMO == "Yes", "Yes", "No")))
##Add in Original Duct diameter into FRSODDSRatio2
FRSNomogram <- cbind(FRSOddsRatio2, PanDuctOriginal = FRSDemo$PAN_DUCTSIZE)
###recode Unknown to NA panductoriginal
FRSNomogram$PanDuctOriginal[FRSNomogram$PanDuctOriginal =="Unknown"] <- NA
##Univariant Model Seriouscomplication
UV <- FRSNomogram %>%
select(FistulaOddsRatio, SEX, PAN_GLANDTEXT, BMIB, PanDuctOriginal, ChemoOnly, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ SEX + PAN_GLANDTEXT + BMIB + PanDuctOriginal + ChemoOnly + PAN_RADIO + Pathology,
data = FRSNomogram,
family = binomial("logit"),
na.action =na.omit
)
broom::tidy(MVOR, exponentiate = T, conf.int = T)
FRSNomogram_complete1 <-
FRSNomogram_complete %>%
remove_missing()
predict = predict(MVOR)
mutate(predict = predict(MVOR))
FRSNomogram$predict <- predict(MVOR)
prob = predict(oneyr_ageadmit,type=c("response"))
fit statistics
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
AdjustedFRS AUC Curve: 0.6965 95% CI: 0.6771-0.7158 (DeLong)
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, SeriousComplication, AnyComplication )
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
##Add column cpt code to demotable
FRSDemotable <-
cbind(FRSDemotable, CPT = FRSDemo$CPT)
###subsetting only pancreaticoduodenectomy
FRSDemoTableFinal <-
subset(FRSDemotable, CPT == "48153" | CPT == "48154")
###chemoOnly group
FRSDemoTableFinal1 <-
FRSDemoTableFinal %>%
mutate(FRSDemoTableFinal, ChemoOnly = ifelse(PAN_RADIO == "Yes", "No",
ifelse(PAN_CHEMO == "Yes", "Yes", "No")))
#Final Step to create demographic table
FRSDemoTableFinal1 %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**Clinically Relevant Postoperative Pancreatic Fistula*") %>%
bold_labels()
#### Coding for Odds Ratio all below
FRSOddsRatio <-
FRSDemoTableFinal1 %>%
mutate(FRSDemoTableFinal1, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Change CRPOPF to an event "1"
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
mutate(FRSOddsRatio1, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs other
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma", "Other"))
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
###recode Unknown to NA panductoriginal
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="Unknown"] <- NA
##Univariant Model Seriouscomplication
UV <- FRSOddsRatio2 %>%
select(FistulaOddsRatio, SEX, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, ChemoOnly, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ SEX + PAN_GLANDTEXT + PAN_DUCTSIZE + BMIB + ChemoOnly + PAN_RADIO + Pathology,
data = FRSAUC,
family = binomial("logit"),
na.action =na.omit
)
broom::tidy(MVOR, exponentiate = T, conf.int = T)
###continue on to merge the table sets
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVORTable),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
###Creating AUC graphs
install.packages('aod')
install.packages('ggplot2')
library(aod)
library(ggplot2)
#Logistic Regression Model
install.packages("nnet")
library(nnet)
##remove missing so that we can run the model to do the AUC create dataframes for two separate models
AdjustedFRS <-
FRSOddsRatio1 %>%
select(FistulaOddsRatio, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE)
AdjustedFRS <-
AdjustedFRS %>%
remove_missing()
PortlandFRS <-
FRSOddsRatio1 %>%
select(FistulaOddsRatio, SEX,PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, Pathology, PAN_CHEMO)
PortlandFRS <-
PortlandFRS %>%
remove_missing()
##AUC Model Running for Adjusted FRS AUC
AdjustedModel <-
glm(FistulaOddsRatio~PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB, family = binomial(link = "logit"), data = AdjustedFRS)
PredictModel=predict(AdjustedModel)
PredictModel1=prediction(PredictModel, AdjustedFRS$FistulaOddsRatio)
plot(performance(PredictModel1,"tpr","fpr")) %>%
abline(a=0,b=1)
##calculate accuracy of above
x=performance(PredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
abline(a=0,b=1)
auc=performance(PredictModel1,"auc")
unlist(slot(auc,"y.values"))
ci.auc(AdjustedFRS$FistulaOddsRatio, PredictModel)
##AUC for Adjusted and CI
##another way to get the AUC and CI for adjusted
AdjustedRocObj <- roc(AdjustedFRS$FistulaOddsRatio, PredictModel)
print(AdjustedRocObj$auc)
print(ci(AdjustedRocObj))
##AUC Model Running for Adjusted FRS AUC
PortlandModel <-
glm(FistulaOddsRatio~SEX+Pathology+PAN_CHEMO+PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB, family = binomial(link = "logit"), data = PortlandFRS)
Pr_model=predict(PortlandModel)
Pr_model1=prediction(Pr_model, PortlandFRS$FistulaOddsRatio)
plot(performance(Pr_model1,"tpr","fpr",)) %>%
abline(a=0,b=1)
##another way to get the AUC and CI
PortlandRocObj <- roc(PortlandFRS$FistulaOddsRatio, Pr_model)
print(PortlandRocObj$auc)
print(ci(PortlandRocObj))
##calculate accuracy of above
x=performance(Pr_model1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
abline(a=0,b=1)
auc=performance(Pr_model1,"auc")
unlist(slot(auc,"y.values"))
ci.auc(PortlandFRS$FistulaOddsRatio, Pr_model)
#define object to plot
rocobj <- roc(AdjustedFRS$FistulaOddsRatio, PredictModel)
#create ROC plot
ggroc(rocobj)
#define object to plot and calculate AUC
auc <- round(auc(AdjustedFRS$FistulaOddsRatio, PredictModel),4)
#create ROC plot
ggroc(rocobj, colour = 'steelblue', size = 2) +
ggtitle(paste0('ROC Curve ', '(AUC = ', auc, ')'))
?ggroc
###Obtain more data from the model
broom::tidy(ggroc, exponentiate = T, conf.int = T)
AUC Portland FRS = 0.7218 (95% CI: 0.6987-0.745)
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, SeriousComplication, AnyComplication )
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
##Add column cpt code to demotable
FRSDemotable <-
cbind(FRSDemotable, CPT = FRSDemo$CPT)
###subsetting only pancreaticoduodenectomy
FRSDemoTableFinal <-
subset(FRSDemotable, CPT == "48153" | CPT == "48154")
###chemoOnly group
FRSDemoTableFinal1 <-
FRSDemoTableFinal %>%
mutate(FRSDemoTableFinal, ChemoOnly = ifelse(PAN_RADIO == "Yes", "No",
ifelse(PAN_CHEMO == "Yes", "Yes", "No")))
#Final Step to create demographic table
FRSDemoTableFinal1 %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**Clinically Relevant Postoperative Pancreatic Fistula*") %>%
bold_labels()
#### Coding for Odds Ratio all below
FRSOddsRatio <-
FRSDemoTableFinal1 %>%
mutate(FRSDemoTableFinal1, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Change CRPOPF to an event "1"
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
mutate(FRSOddsRatio1, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs other
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma", "Other"))
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
###recode Unknown to NA panductoriginal
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="Unknown"] <- NA
##Univariant Model Seriouscomplication
UV <- FRSOddsRatio2 %>%
select(FistulaOddsRatio, SEX, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, ChemoOnly, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ SEX + PAN_GLANDTEXT + PAN_DUCTSIZE + BMIB + ChemoOnly + PAN_RADIO + Pathology,
data = FRSAUC,
family = binomial("logit"),
na.action =na.omit
)
broom::tidy(MVOR, exponentiate = T, conf.int = T)
###continue on to merge the table sets
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVORTable),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
###Creating AUC graphs
install.packages('aod')
install.packages('ggplot2')
library(aod)
library(ggplot2)
#Logistic Regression Model
install.packages("nnet")
library(nnet)
##remove missing so that we can run the model to do the AUC create dataframes for two separate models
AdjustedFRS <-
FRSOddsRatio1 %>%
select(FistulaOddsRatio, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE)
AdjustedFRS <-
AdjustedFRS %>%
remove_missing()
PortlandFRS <-
FRSOddsRatio1 %>%
select(FistulaOddsRatio, SEX,PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, Pathology, PAN_CHEMO)
PortlandFRS <-
PortlandFRS %>%
remove_missing()
##AUC Model Running for Adjusted FRS AUC
AdjustedModel <-
glm(FistulaOddsRatio~PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB, family = binomial(link = "logit"), data = AdjustedFRS)
PredictModel=predict(AdjustedModel)
PredictModel1=prediction(PredictModel, AdjustedFRS$FistulaOddsRatio)
plot(performance(PredictModel1,"tpr","fpr"))
##calculate accuracy of above
x=performance(PredictModel1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
abline(a=0,b=1)
auc=performance(PredictModel1,"auc")
unlist(slot(auc,"y.values"))
ci.auc(AdjustedFRS$FistulaOddsRatio, PredictModel)
##AUC Model Running for Adjusted FRS AUC
PortlandModel <-
glm(FistulaOddsRatio~SEX+Pathology+PAN_CHEMO+PAN_GLANDTEXT+PAN_DUCTSIZE+BMIB, family = binomial(link = "logit"), data = PortlandFRS)
Pr_model=predict(PortlandModel)
Pr_model1=prediction(Pr_model, PortlandFRS$FistulaOddsRatio)
plot(performance(Pr_model1,"tpr","fpr",)) %>%
abline(a=0,b=1)
##another way to get the AUC and CI
PortlandRocObj <- roc(PortlandFRS$FistulaOddsRatio, Pr_model)
print(PortlandRocObj$auc)
print(ci(PortlandRocObj))
##calculate accuracy of above
x=performance(Pr_model1,"acc")
max=which.max(slot(x,"y.values")[[1]])
acc=slot(x,"y.values")[[1]][max]
acc
abline(a=0,b=1)
auc=performance(Pr_model1,"auc")
unlist(slot(auc,"y.values"))
ci.auc(PortlandFRS$FistulaOddsRatio, Pr_model)
#define object to plot
rocobj <- roc(AdjustedFRS$FistulaOddsRatio, PredictModel)
#create ROC plot
ggroc(rocobj)
#define object to plot and calculate AUC
auc <- round(auc(AdjustedFRS$FistulaOddsRatio, PredictModel),4)
#create ROC plot
ggroc(rocobj, colour = 'steelblue', size = 2) +
ggtitle(paste0('ROC Curve ', '(AUC = ', auc, ')'))
?ggroc
###Obtain more data from the model
broom::tidy(ggroc, exponentiate = T, conf.int = T)
FRS Odds Ratio Final with correct CPT Codes
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, SeriousComplication, AnyComplication )
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
##Add column cpt code to demotable
FRSDemotable <-
cbind(FRSDemotable, CPT = FRSDemo$CPT)
###subsetting only pancreaticoduodenectomy
FRSDemoTableFinal <-
subset(FRSDemotable, CPT == "48153" | CPT == "48154")
###chemoOnly group
FRSDemoTableFinal1 <-
FRSDemoTableFinal %>%
mutate(FRSDemoTableFinal, ChemoOnly = ifelse(PAN_RADIO == "Yes", "No",
ifelse(PAN_CHEMO == "Yes", "Yes", "No")))
#Final Step to create demographic table
FRSDemoTableFinal1 %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**Clinically Relevant Postoperative Pancreatic Fistula*") %>%
bold_labels()
#### Coding for Odds Ratio all below
FRSOddsRatio <-
FRSDemoTableFinal1 %>%
mutate(FRSDemoTableFinal1, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Change CRPOPF to an event "1"
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
mutate(FRSOddsRatio1, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs other
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma", "Other"))
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
###recode Unknown to NA panductoriginal
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="Unknown"] <- NA
##Univariant Model Seriouscomplication
UV <- FRSOddsRatio1 %>%
select(FistulaOddsRatio, SEX, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, ChemoOnly, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ SEX + PAN_GLANDTEXT + PAN_DUCTSIZE + BMIB + ChemoOnly + PAN_RADIO + Pathology,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
broom::tidy(MVOR, exponentiate = T, conf.int = T)
FRSNomogram_complete1 <-
FRSNomogram_complete %>%
remove_missing()
predict = predict(MVOR)
mutate(predict = predict(MVOR))
FRSNomogram$predict <- predict(MVOR)
prob = predict(oneyr_ageadmit,type=c("response"))
fit statistics
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVORTable),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
CRPOPF Fistula Demographic Table (correct CPT Cods)
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, SeriousComplication, AnyComplication )
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
##Add column cpt code to demotable
FRSDemotable <-
cbind(FRSDemotable, CPT = FRSDemo$CPT)
###subsetting only pancreaticoduodenectomy
FRSDemoTableFinal <-
subset(FRSDemotable, CPT == "48153" | CPT == "48154")
###chemoOnly group
FRSDemoTableFinal1 <-
FRSDemoTableFinal %>%
mutate(FRSDemoTableFinal, ChemoOnly = ifelse(PAN_RADIO == "Yes", "No",
ifelse(PAN_CHEMO == "Yes", "Yes", "No")))
#Final Step to create demographic table
FRSDemoTableFinal1 %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**Clinically Relevant Postoperative Pancreatic Fistula*") %>%
bold_labels()
#### Coding for Odds Ratio all below
FRSOddsRatio <-
FRSDemoTableFinal1 %>%
mutate(FRSDemoTableFinal1, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Change CRPOPF to an event "1"
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
mutate(FRSOddsRatio1, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs other
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma", "Other"))
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
###recode Unknown to NA panductoriginal
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="Unknown"] <- NA
##Univariant Model Seriouscomplication
UV <- FRSOddsRatio1 %>%
select(FistulaOddsRatio, SEX, PAN_GLANDTEXT, BMIB, PAN_DUCTSIZE, ChemoOnly, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ SEX + PAN_GLANDTEXT + PAN_DUCTSIZE + BMIB + ChemoOnly + PAN_RADIO + Pathology,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
broom::tidy(MVOR, exponentiate = T, conf.int = T)
FRSNomogram_complete1 <-
FRSNomogram_complete %>%
remove_missing()
predict = predict(MVOR)
mutate(predict = predict(MVOR))
FRSNomogram$predict <- predict(MVOR)
prob = predict(oneyr_ageadmit,type=c("response"))
fit statistics
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVORTable),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
FRS Odds Ratio Final
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_CHEMO, PAN_RADIO, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, DPRBILI, SeriousComplication, AnyComplication)
FRSChemo <-
FRSDemo %>%
select(PAN_CHEMO, PAN_RADIO)
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
var_label(FRSDemotable$PAN_CHEMO) <- "Preop Chemotherapy"
var_label(FRSDemotable$PAN_RADIO) <- "Preop Radiation"
var_label(FRSDemotable$PAN_MALIG_HISTOLOGIC) <- "Pathology"
var_label(FRSDemotable$DPRBILI) <- "Preop Bilirubin"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
###Recoding Pathology
FRSDemotable$PAN_MALIG_HISTOLOGIC[FRSDemotable$PAN_MALIG_HISTOLOGIC =="Other type"] <- NA
FRSDemotable$PAN_MALIG_HISTOLOGIC[FRSDemotable$PAN_MALIG_HISTOLOGIC =="N/A"] <- NA
#Final Step to create demographic table
FRSOddsRatio2 %>%
tbl_summary(
by = ChemoOnly,
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") ~ "**Chem vs Radiation*") %>%
bold_labels()
###Change CRPOPF to an event "1"
FRSOddsRatio <-
FRSOddsRatio %>%
mutate(FRSOddsRatio, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs ampullary, duodenal, cystic and islet cell
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma", "Other"))
Maybe add distal choliangio to the above along with ampullary duodenal and cystic ^^^
Also cod duct size to be below and above 3 do something similar with gland texture
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
#### Coding for Odds Ratio all below
FRSOddsRatio <-
FRSDemotable %>%
mutate(FRSDemotable, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
FRSOddsRatio2 <-
FRSOddsRatio1 %>%
mutate(FRSOddsRatio1, ChemoOnly = ifelse(PAN_RADIO == "Yes", "No",
ifelse(PAN_CHEMO == "Yes", "Yes", "No")))
##Add in Original Duct diameter into FRSODDSRatio2
FRSNomogram <- cbind(FRSOddsRatio2, PanDuctOriginal = FRSDemo$PAN_DUCTSIZE)
###recode Unknown to NA panductoriginal
FRSNomogram$PanDuctOriginal[FRSNomogram$PanDuctOriginal =="Unknown"] <- NA
##Univariant Model Seriouscomplication
UV <- FRSNomogram %>%
select(FistulaOddsRatio, SEX, PAN_GLANDTEXT, BMIB, PanDuctOriginal, ChemoOnly, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ SEX + PAN_GLANDTEXT + BMIB + PanDuctOriginal + ChemoOnly + PAN_RADIO + Pathology,
data = FRSNomogram,
family = binomial("logit"),
na.action =na.omit
)
broom::tidy(MVOR, exponentiate = T, conf.int = T)
FRSNomogram_complete1 <-
FRSNomogram_complete %>%
remove_missing()
predict = predict(MVOR)
mutate(predict = predict(MVOR))
FRSNomogram$predict <- predict(MVOR)
prob = predict(oneyr_ageadmit,type=c("response"))
fit statistics
MVORTable <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
FRS Odds Ratio Chemo Only multivariate
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_CHEMO, PAN_RADIO, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, DPRBILI, SeriousComplication, AnyComplication)
FRSChemo <-
FRSDemo %>%
select(PAN_CHEMO, PAN_RADIO)
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
var_label(FRSDemotable$PAN_CHEMO) <- "Preop Chemotherapy"
var_label(FRSDemotable$PAN_RADIO) <- "Preop Radiation"
var_label(FRSDemotable$PAN_MALIG_HISTOLOGIC) <- "Pathology"
var_label(FRSDemotable$DPRBILI) <- "Preop Bilirubin"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
###Recoding Pathology
FRSDemotable$PAN_MALIG_HISTOLOGIC[FRSDemotable$PAN_MALIG_HISTOLOGIC =="Other type"] <- NA
FRSDemotable$PAN_MALIG_HISTOLOGIC[FRSDemotable$PAN_MALIG_HISTOLOGIC =="N/A"] <- NA
#Final Step to create demographic table
FRSOddsRatio2 %>%
tbl_summary(
by = ChemoOnly,
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") ~ "**Chem vs Radiation*") %>%
bold_labels()
#### Coding for Odds Ratio all below
FRSOddsRatio <-
FRSDemotable %>%
mutate(FRSDemotable, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
FRSOddsRatio2 <-
FRSOddsRatio1 %>%
mutate(FRSOddsRatio1, ChemoOnly = ifelse(PAN_RADIO == "Yes", "No",
ifelse(PAN_CHEMO == "Yes", "Yes", "No")))
###Change CRPOPF to an event "1"
FRSOddsRatio <-
FRSOddsRatio %>%
mutate(FRSOddsRatio, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs ampullary, duodenal, cystic and islet cell
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma",
ifelse(PAN_MALIG_HISTOLOGIC == "Ampullary carcinoma", "Ampullary, Duodenal, Cystic",
ifelse(PAN_MALIG_HISTOLOGIC == "Cystadenocarcinoma", "Ampullary, Duodenal, Cystic",
ifelse(PAN_MALIG_HISTOLOGIC == "Duodenal carcinoma", "Ampullary, Duodenal, Cystic", "NA")))))
Maybe add distal choliangio to the above along with ampullary duodenal and cystic ^^^
Also cod duct size to be below and above 3 do something similar with gland texture
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
##Univariant Model Seriouscomplication
UV <- FRSOddsRatio2 %>%
select(FistulaOddsRatio, SEX, PAN_GLANDTEXT, PAN_DUCTSIZE, ChemoOnly, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ SEX + PAN_GLANDTEXT + PAN_DUCTSIZE + ChemoOnly + PAN_RADIO + Pathology,
data = FRSOddsRatio2,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
###Subset odds ratio datafram so only fistual patients are on it
FRSNomogram <-
subset(FRSOddsRatio1, Fistula.Grade == "CR-POPF")
####Nomogram
install.packages("PASWR")
install.packages("rms")
library(PASWR)
library(rms)
data(titanic3)
FRS.data <- datadist(FRSNomogram)
options(datadist = 'frs.data')
fit <- lrm(formula = Fistula.Grade ~ SEX + Age + DIABETES + PAN_GLANDTEXT + PAN_DUCTSIZE + Pathology, data = FRSNomogram)
plot(nomogram(fit, fun = function(x)plogis(x)))
sum(FRSOddsRatio2$ChemoOnly = "No")
FRS Odds Ratio Multivariate
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_CHEMO, PAN_RADIO, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, DPRBILI, SeriousComplication, AnyComplication)
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
var_label(FRSDemotable$PAN_CHEMO) <- "Preop Chemotherapy"
var_label(FRSDemotable$PAN_RADIO) <- "Preop Radiation"
var_label(FRSDemotable$PAN_MALIG_HISTOLOGIC) <- "Pathology"
var_label(FRSDemotable$DPRBILI) <- "Preop Bilirubin"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
###Recoding Pathology
FRSDemotable$PAN_MALIG_HISTOLOGIC[FRSDemotable$PAN_MALIG_HISTOLOGIC =="Other type"] <- NA
FRSDemotable$PAN_MALIG_HISTOLOGIC[FRSDemotable$PAN_MALIG_HISTOLOGIC =="N/A"] <- NA
#Final Step to create demographic table
FRSDemotable %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**Clinically Relevant Postoperative Pancreatic Fistula*") %>%
bold_labels()
#### Coding for Odds Ratio all below
FRSOddsRatio <-
FRSDemotable %>%
mutate(FRSDemotable, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Change CRPOPF to an event "1"
FRSOddsRatio <-
FRSOddsRatio %>%
mutate(FRSOddsRatio, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs ampullary, duodenal, cystic and islet cell
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma",
ifelse(PAN_MALIG_HISTOLOGIC == "Ampullary carcinoma", "Ampullary, Duodenal, Cystic",
ifelse(PAN_MALIG_HISTOLOGIC == "Cystadenocarcinoma", "Ampullary, Duodenal, Cystic",
ifelse(PAN_MALIG_HISTOLOGIC == "Duodenal carcinoma", "Ampullary, Duodenal, Cystic", "NA")))))
Maybe add distal choliangio to the above along with ampullary duodenal and cystic ^^^
Also cod duct size to be below and above 3 do something similar with gland texture
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
##Univariant Model Seriouscomplication
UV <- FRSOddsRatio1 %>%
dplyr::select(FistulaOddsRatio, SEX, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_CHEMO, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(FistulaOddsRatio ~ SEX + RACE_NEW + PAN_GLANDTEXT + PAN_DUCTSIZE + DIABETES + PAN_CHEMO + PAN_RADIO + Pathology,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
###Subset odds ratio datafram so only fistual patients are on it
FRSNomogram <-
subset(FRSOddsRatio1, Fistula.Grade == "CR-POPF")
####Nomogram
install.packages("PASWR")
install.packages("rms")
library(PASWR)
library(rms)
data(titanic3)
FRS.data <- datadist(FRSNomogram)
options(datadist = 'frs.data')
fit <- lrm(formula = Fistula.Grade ~ SEX + Age + DIABETES + PAN_GLANDTEXT + PAN_DUCTSIZE + Pathology, data = FRSNomogram)
plot(nomogram(fit, fun = function(x)plogis(x)))
CRPOP FRS Odds Ratio
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_CHEMO, PAN_RADIO, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, DPRBILI, SeriousComplication, AnyComplication)
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
var_label(FRSDemotable$PAN_CHEMO) <- "Preop Chemotherapy"
var_label(FRSDemotable$PAN_RADIO) <- "Preop Radiation"
var_label(FRSDemotable$PAN_MALIG_HISTOLOGIC) <- "Pathology"
var_label(FRSDemotable$DPRBILI) <- "Preop Bilirubin"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
###Recoding Pathology
FRSDemotable$PAN_MALIG_HISTOLOGIC[FRSDemotable$PAN_MALIG_HISTOLOGIC =="Other type"] <- NA
FRSDemotable$PAN_MALIG_HISTOLOGIC[FRSDemotable$PAN_MALIG_HISTOLOGIC =="N/A"] <- NA
#Final Step to create demographic table
FRSDemotable %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**Clinically Relevant Postoperative Pancreatic Fistula*") %>%
bold_labels()
#### Coding for Odds Ratio all below
FRSOddsRatio <-
FRSDemotable %>%
mutate(FRSDemotable, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Change CRPOPF to an event "1"
FRSOddsRatio <-
FRSOddsRatio %>%
mutate(FRSOddsRatio, FistulaOddsRatio = ifelse(Fistula.Grade =="CR-POPF", "1",
ifelse(Fistula.Grade =="No CR-POPF", "0", "NA")))
###Create and odds ratio for DPAC vs ampullary, duodenal, cystic and islet cell
FRSOddsRatio1 <-
mutate(FRSOddsRatio, Pathology = ifelse(PAN_MALIG_HISTOLOGIC == "Pancreatic adenocarcinoma", "Pancreatic Adenocarcinoma",
ifelse(PAN_MALIG_HISTOLOGIC == "Ampullary carcinoma", "Ampullary, Duodenal, Cystic",
ifelse(PAN_MALIG_HISTOLOGIC == "Cystadenocarcinoma", "Ampullary, Duodenal, Cystic",
ifelse(PAN_MALIG_HISTOLOGIC == "Duodenal carcinoma", "Ampullary, Duodenal, Cystic", "NA")))))
Maybe add distal choliangio to the above along with ampullary duodenal and cystic ^^^
Also cod duct size to be below and above 3 do something similar with gland texture
### Turning NA to the actual NA's that are ommitted in pathology
FRSOddsRatio1$Pathology[FRSOddsRatio1$Pathology =="NA"] <- NA
###fistulaoddsratio as numeric
FRSOddsRatio1$FistulaOddsRatio <- as.numeric(FRSOddsRatio1$FistulaOddsRatio)
###Recoding pancreatic duct diameter
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE ==">6 mm"] <- ">3 mm"
FRSOddsRatio1$PAN_DUCTSIZE[FRSOddsRatio1$PAN_DUCTSIZE =="3-6 mm"] <- ">3 mm"
##Recoding gland texture
FRSOddsRatio1$PAN_GLANDTEXT[FRSOddsRatio1$PAN_GLANDTEXT =="Intermediate"] <- NA
##Univariant Model Seriouscomplication
UV <- FRSOddsRatio1 %>%
dplyr::select(FistulaOddsRatio, SEX, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_CHEMO, PAN_RADIO, Pathology) %>%
tbl_uvregression(
method = glm,
y = FistulaOddsRatio,
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
MVOR <-
glm(SeriousComplication1 ~ PAN_APPROACH + SEX + BMIB + ASACLAS + BMI,
data = SeriousComplicationOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
CRPOPF Fistula Demographic Table (Nomogram)
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
####FRSFull with already coded CR-POPF vs No CR-POPF
##Subsetting the data so it's only patients with CR-POPF vs No CR-POPF
FRSDemo <-
subset(FRSFUll, Fistula.Grade == "CR-POPF" | Fistula.Grade == "No CR-POPF")
###Variables I want in Demographic Table
FRSDemotable <-
FRSDemo %>%
select(PAN_FISTULA, Fistula.Grade, Age, SEX, BMI, RACE_NEW, PAN_GLANDTEXT, PAN_DUCTSIZE, DIABETES, PAN_MALIG_HISTOLOGIC, ASACLAS, DOpertoD, SeriousComplication, AnyComplication )
#Ifelse function to create new column for serious complication and any complication
FRSDemo1 <-
mutate(FRSDemo, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
FRSDemo <-
mutate(FRSDemo1, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
### Recoding mortality
FRSDemo$DOpertoD[is.na(FRSDemo$DOpertoD)] <- "No"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 0] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 1] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 10] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 11] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 12] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 13] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 14] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 15] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 16] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 18] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 19] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 21] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 22] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 23] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 24] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 25] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 26] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 27] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 28] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 29] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 3] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 30] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 4] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 5] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 6] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 7] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 9] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 17] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 2] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 8] <- "Yes"
FRSDemo$DOpertoD[FRSDemo$DOpertoD == 20] <- "Yes"
###Bringing in Panfinal to ensure I'm utilizing the most uptodate grading criteria for CRPOPF (ISGPS)
ADDtoFRSDEMO <- read.csv ("panfinal.csv", header = TRUE, sep = "," )
###Recode to the 4 grades of ISGPS
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade A"] <- "Biochemical Leak"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade B"] <- "ISGPS Grade B"
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Grade C"] <- "ISGPS Grade C"
### Removing Unknowns in fistual grade addtofrsdemo plan prior to adding in that column
ADDtoFRSDEMO$Fistula.Grade[ADDtoFRSDEMO$Fistula.Grade =="Unknown"] <- NA
ADDtoFRSDEMO <-na.omit(ADDtoFRSDEMO)
###move column over addtofrsdemo -> frsdemo
FRSDemoNew <-
cbind(FRSDemo, FistualGradeNew = ADDtoFRSDEMO$Fistula.Grade)
####recoding FRSDEMo Pan_fistula to include the labeled ISGPS criteria
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Biochemical Leak only"] <- "Biochemical Leak"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, percutaneous drainage performed"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, drain continued >7 days"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade B POPF present"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, spontaneous wound drainage"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, NPO-TPN"] <- "ISGPS Grade B"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-clinical diagnosis, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes, Grade C POPF present"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="Yes-persistent drainage, reoperation performed"] <- "ISGPS Grade C"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No evidence of Biochemical Leak or POPF"] <- "No Fistula"
FRSDemo$PAN_FISTULA[FRSDemo$PAN_FISTULA =="No"] <- "No Fistula"
#### Labeling columns
var_label(FRSDemotable$PAN_FISTULA) <- "ISGPS Criteria"
var_label(FRSDemotable$RACE_NEW) <- "Race"
var_label(FRSDemotable$ASACLAS) <- "ASA Classification"
var_label(FRSDemotable$SEX) <- "Sex"
var_label(FRSDemotable$PAN_GLANDTEXT) <- "Gland Texture"
var_label(FRSDemotable$PAN_DUCTSIZE) <- "Pancreatic Duct Diameter"
var_label(FRSDemotable$DOpertoD) <- "Mortality"
var_label(FRSDemotable$DIABETES) <- "Diabetes"
var_label(FRSDemotable$SeriousComplication) <- "Serious Complication"
var_label(FRSDemotable$AnyComplication) <- "Any Complication"
## Changing any Unknowns/none assigned to NA
FRSDemotable[FRSDemotable =="None assigned"] <- NA
FRSDemotable[FRSDemotable =="Unknown"] <- NA
###Try removing 5-moribound from the odds ratio
FRSDemotable$ASACLAS[FRSDemotable$ASACLAS =="5-Moribund"] <- NA
#Final Step to create demographic table
FRSDemotable %>%
tbl_summary(
by = Fistula.Grade,
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") ~ "**Clinically Relevant Postoperative Pancreatic Fistula*") %>%
bold_labels()
MIS vs MIS Converted to Open Demographic Table serious & Any complication
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NSQIPShortTermOutcomes <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
##Creating BMI column from heigh, weight
NSQIPShortTermOutcomes$BMI <- (NSQIPShortTermOutcomes$WEIGHT * 703) / (NSQIPShortTermOutcomes$HEIGHT * NSQIPShortTermOutcomes$HEIGHT)
### Recoding MIS vs MIS converted to open
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Open (planned)"] <- "Open"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="NOTES w/ unplanned conversion to open"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Laparoscopic"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Laparoscopic w/ open assist"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Laparoscopic w/ unplanned conversion to open"] <- "MIS Converted to Open"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Robotic"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Robotic w/ unplanned conversion to open"] <- "MIS Converted to Open"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Robotic w/ open assist"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Other"] <- NA
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Other MIS approach"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Other MIS approach w/ open assist"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Other MIS approach w/ unplanned conversion to open"] <- "MIS Converted to Open"
Other MIS approach w/ unplanned conversion to open
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Hybrid"] <- NA
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Hybrid w/ open assist"] <- NA
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Hybrid w/ unplanned conversion to open"] <- NA
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Unknown"] <- NA
#### Labeling columns
var_label(IntentiontotreatFinal$SEX) <- "Sex"
var_label(IntentiontotreatFinal$RACE_NEW) <- "Race"
var_label(IntentiontotreatFinal$ASACLAS) <- "ASA Classification"
var_label(IntentiontotreatFinal$Fistula.Grade) <- "Fistula"
var_label(IntentiontotreatFinal$OPTIME) <- "Total operation time"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Number of Pneumonia Occurrences"
var_label(IntentiontotreatFinal$DOpertoD) <- "Mortality"
var_label(IntentiontotreatFinal$TOTHLOS) <- "Length of total hospital stay"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Occurrences Pneumonia"
var_label(IntentiontotreatFinal$PULEMBOL) <- "Occurrences Pulmonary Embolism"
var_label(IntentiontotreatFinal$WNDINFD) <- " Occurrences Deep Incisional SSI"
var_label(IntentiontotreatFinal$STILLINHOSP) <- "Still in Hospital > 30 Days"
var_label(IntentiontotreatFinal$REOPERATION1) <- "Unplanned Reoperation 1"
var_label(IntentiontotreatFinal$OTHSYSEP) <- "Occurrences Sepsis"
var_label(IntentiontotreatFinal$SeriousComplication) <- "Serious Complication"
var_label(IntentiontotreatFinal$AnyComplication) <- "Any Complication"
##Subsetting the datafram by literally anything
MISVSCONVERSIONDemotable <-
subset(NSQIPShortTermOutcomes, PAN_APPROACH == "MIS" | PAN_APPROACH == "MIS Converted to Open")
NSQIPShortTermOutcomesBeforeSubset <-
subset(NSQIPShortTermOutcomes, CPT == "48140" | CPT == "48145")
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS Converted to Open"] <- "Intention to Treat MIS"
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS"] <- "Intention to Treat MIS"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "SIRS"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Septic Shock"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Sepsis"] <- "Yes"
NSQIPShortTermOutcomes$ASACLAS[NSQIPShortTermOutcomes$ASACLAS =="None assigned"] <- "Unknown"
NSQIPDemographicTable1 <- table(NSQIPDemographicTable$PAN_APPROACH, NSQIPDemographicTable$ASACLAS)
###Recoding Variables in DopertoD numbers > yes and any NA's to No
NSQIPShortTermOutcomes[NSQIPShortTermOutcomes$DOpertoD =="NA",]$DOpertoD <- "No"
NSQIPShortTermOutcomes$DOpertoD[NSQIPShortTermOutcomes$DOpertoD ==NA] <- "No"
NSQIPShortTermOutcomes$DOpertoD <- as.character(NSQIPShortTermOutcomes$DOpertoD)
NSQIPShortTermOutcomes$DOpertoD[is.na(NSQIPShortTermOutcomes$DOpertoD)] <- "No"
#Ifelse function to create new column for serious complication and any complication
MISVSConversion <-
mutate(MISVSCONVERSIONDemotable, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
MISVSConversion1 <-
mutate(MISVSConversion, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
print(NSQIPShortTermOutcomes$OUPNEUMO)
#### Subsetting cleaned data from one dataframe to a new dataframe
MISvsConversionDemotableFinal <-
MISVSConversion1 %>%
select(PAN_APPROACH, Age, SEX, BMI, RACE_NEW, ASACLAS, DOpertoD, Fistula.Grade, OPTIME, TOTHLOS, CDARREST, CDMI, NRENAINSF, OPRENAFL, OTHDVT, OUPNEUMO, PULEMBOL, WNDINFD, URNINFEC, DEHIS, STILLINHOSP, REOPERATION1, RETURNOR, REINTUB, ORGSPCSSI, OTHSYSEP, PRSEPIS, FAILWEAN, CNSCVA, SeriousComplication, AnyComplication)
## Changing any Unknowns/none assigned to NA
IntentiontotreatFinal[IntentiontotreatFinal =="None assigned"] <- NA
IntentiontotreatFinal[IntentiontotreatFinal =="Unknown"] <- NA
## Changing any Unknowns/none assigned to NA
MISvsConversionDemotableFinal[MISvsConversionDemotableFinal =="None assigned"] <- NA
MISvsConversionDemotableFinal[MISvsConversionDemotableFinal =="Unknown"] <- NA
#Final Step to create demographic table
MISvsConversionDemotableFinal %>%
tbl_summary(
by = PAN_APPROACH,
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") ~ "**NSQIP Short Term Outcomes**") %>%
bold_labels()
#Ifelse function to create new column for serious complication and any complication
MISVSConversion <-
mutate(MISVSCONVERSIONDemotable1, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
MISVSConversion1 <-
mutate(MISITTDemoTable, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
Neomulti agent vs Preop Xrt Demographic Table
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
PreopNeoPaper <- read.csv ("PreoppaperFinal.csv", header = TRUE, sep = "," )
#### Subsetting cleaned data from one dataframe to a new dataframe
PreopNeoPaperDemotable <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
PreopXRTOddsratio <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
### Preopneopaperdemotable changing columns singlevsmultiagent from numbers back to characters
PreopNeoPaperDemotable$Single.vs.Multi.Agent[PreopNeoPaperDemotable$Single.vs.Multi.Agent == 1 ] <- "Preop XRT"
PreopNeoPaperDemotable$Single.vs.Multi.Agent[PreopNeoPaperDemotable$Single.vs.Multi.Agent ==0] <- "Neo Multiagent Chemo"
PreopNeoPaperDemotable$Single.vs.Multi.Agent <- as.character(PreopNeoPaperDemotable$Single.vs.Multi.Agent)
#Final Step to create demographic table
PreopNeoPaperDemotable %>%
tbl_summary(
by = Single.vs.Multi.Agent,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
bold_p() %>%
add_overall() %>%
modify_header(label ~ "**Variables**") %>%
modify_spanning_header(c("stat_0", "stat_1") ~ "**Neo Multiagent vs Preop XRT**") %>%
bold_labels()
### Recoding No High School degree from blanks to unknown
PreopNeoPaper$NO_HSD_QUAR_12[PreopNeoPaper$NO_HSD_QUAR_12 ==""] <- "Unknown"
##Recoding Data within TNM Clin T
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T =="c0"] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T == "cX"] <- "Unknown"
##Recoding Data within TNM Clin N
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N == "cX"] <- "Unknown"
##Recoding Data within TNM Path T
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T =="pIS"] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T == "pX"] <- "Unknown"
##Recoding Data within TNM Path N
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N =="pX"] <- "Unknown"
##Recoding Analytical Stages removing Stage IV patients
PreopNeoPaper$ANALYTIC_STAGE_GROUP[PreopNeoPaper$ANALYTIC_STAGE_GROUP == "AJCC Stage Group unknown"] <- "Unknown"
##Recoding income
PreopNeoPaper$MED_INC_QUAR_12[PreopNeoPaper$MED_INC_QUAR_12 == ""] <- "Unknown"
###Labeling Columns for MISvsMISConversionNCDBDemographicTable
var_label(PreopNeoPaperDemotable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(PreopNeoPaperDemotable$PUF_VITAL_STATUS.2) <- "Vital Status"
##View the data
print(PreopNeoPaper$Single.vs.Multi.Agent)
#Recode Preop XRT = 1 NeoAdjuvant multiagent= 0
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent == "Pre Op XRT" ] <- 1
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent =="PreOp Multiagent"] <- 0
###Recode preop XRT and Neoadjuvant column back to original
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 1 ] <- "Pre Op XRT"
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 0 ] <- "PreOp Multiagent"
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
Neoadjoddsratio <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, NeoMultiAgent = ifelse(Single.vs.Multi.Agent == 1, 2,
ifelse(Single.vs.Multi.Agent == 0 , 1, 100)))
## Neoadjoddsratio change 2 to become the nonevent
Neoadjoddsratio$NeoMultiAgent[Neoadjoddsratio$NeoMultiAgent == 2] <- 0
###Make Singlevsmultiagent column numeric
PreopNeoPaper$Single.vs.Multi.Agent <- as.numeric(PreopNeoPaper$Single.vs.Multi.Agent)
### Preopxrtoddsratio recoding age to a <75 and >75, and 51-75
PreopXRTOddsratioB <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, AgeB = ifelse(AGE > 75, ">75",
ifelse(AGE < 51 , "<51", "51-75")))
#### recoding Unknowns to NA PreopxrtoddsratioB
PreopXRTOddsratioB$INSURANCE_STATUS.2[PreopXRTOddsratioB$INSURANCE_STATUS.2 =="Unknown"] <- NA
PreopXRTOddsratioB$MED_INC_QUAR_12[PreopXRTOddsratioB$MED_INC_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$NO_HSD_QUAR_12[PreopXRTOddsratioB$NO_HSD_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$Population.density[PreopXRTOddsratioB$Population.density =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_T[PreopXRTOddsratioB$TNM_CLIN_T =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_N[PreopXRTOddsratioB$TNM_CLIN_N =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_PATH_N[PreopXRTOddsratioB$TNM_PATH_N =="Unknown"] <- NA
PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP[PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
PreopXRTOddsratioB$Margins[PreopXRTOddsratioB$Margins =="Unknown"] <- NA
PreopXRTOddsratioB$GRADE.2[PreopXRTOddsratioB$GRADE.2 =="Unknown"] <- NA
PreopXRTOddsratioB$Downstaging[PreopXRTOddsratioB$Downstaging =="Unknown"] <- NA
#### recoding Unknowns to NA Neoadjoddsratio
Neoadjoddsratio$INSURANCE_STATUS.2[Neoadjoddsratio$INSURANCE_STATUS.2 =="Unknown"] <- NA
Neoadjoddsratio$MED_INC_QUAR_12[Neoadjoddsratio$MED_INC_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$NO_HSD_QUAR_12[Neoadjoddsratio$NO_HSD_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$Population.density[Neoadjoddsratio$Population.density =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_T[Neoadjoddsratio$TNM_CLIN_T =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_N[Neoadjoddsratio$TNM_CLIN_N =="Unknown"] <- NA
Neoadjoddsratio$TNM_PATH_N[Neoadjoddsratio$TNM_PATH_N =="Unknown"] <- NA
Neoadjoddsratio$ANALYTIC_STAGE_GROUP[Neoadjoddsratio$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
Neoadjoddsratio$Margins[Neoadjoddsratio$Margins =="Unknown"] <- NA
Neoadjoddsratio$GRADE.2[Neoadjoddsratio$GRADE.2 =="Unknown"] <- NA
Neoadjoddsratio$Downstaging[Neoadjoddsratio$Downstaging =="Unknown"] <- NA
##Univariant Model PreopxrtdOddsratio
UnivariantModel <- PreopXRTOddsratioB %>%
select(Single.vs.Multi.Agent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = Single.vs.Multi.Agent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Univariant Model Neomultiagent
UnivariantModel <- Neoadjoddsratio %>%
select(NeoMultiAgent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = NeoMultiAgent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Multivariant analysis preopxrt
MVOR <-
glm(Single.vs.Multi.Agent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = PreopXRTOddsratioB,
family = binomial("logit"),
na.action =na.omit
)
###mutlivariant neomultiageent
MVOR <-
glm(NeoMultiAgent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = Neoadjoddsratio,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
MIS vs Open Survival Analysis NCDB Data
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NCDBOriginalData <- read.csv ("mohamed_ncdb.csv", header = TRUE, sep = "," )
### Viewing the variables in each column
print(NCDBOriginalData$RX_SUMM_SURG_PRIM_SITE.2.2)
print(NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010)
print(NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP)
print(NCDBDistalPancreatectomy$GRADE)
## Subsetting distal pancreatectomies
NCDBDistalPancreatectomy <-
subset(NCDBOriginalData, RX_SUMM_SURG_PRIM_SITE.2.2 == "Partial pancreatectomy, distal")
### Recoding MIS vs MIS converted to open
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Open or approach unspecified"] <- "Open"
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Laparoscopic"] <- "MIS"
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Laparoscopic converted to open"] <- "MIS Converted to open"
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Robotic assisted"] <- "MIS"
##Recoding Data within Columns Facility Location
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Middle Atlantic"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Mountain"] <- "West"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="South Atlantic"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Pacific"] <- "West"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD ==""] <- NA
print(NCDBDistalPancreatectomy$FACILITY_LOCATION_CD)
###Recoding Data within income
NCDBDistalPancreatectomy$MED_INC_QUAR_12[NCDBDistalPancreatectomy$MED_INC_QUAR_12 ==""] <- NA
###recoding data within no_hsd_quar_12
NCDBDistalPancreatectomy$NO_HSD_QUAR_12[NCDBDistalPancreatectomy$NO_HSD_QUAR_12 ==""] <- NA
##Recoding Data within Columns Population Density
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 2,500 to 19,999, adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 250,000 to 1 million population"] <- "Metro"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 1 million population or more"] <- "Metro"
NCDBDemographicTable$UR_CD_13[NCDBDemographicTable$UR_CD_13 =="Completely rural or less than 2,500 urban population, not adjacent to a metro area"] <- "Rural"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of fewer than 250,000 population"] <- "Metro"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 2,500 to 19,999, not adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Completely rural or less than 2,500 urban population, adjacent to a metro area"] <- "Rural"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 20,000 or more not adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Completely rural or less than 2,500 urban population, not adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 ==""] <- NA
## recoding data within columns vital status
NCDBDistalPancreatectomy$PUF_VITAL_STATUS[NCDBDistalPancreatectomy$PUF_VITAL_STATUS ==""] <- NA
##Recoding Analytical Stages removing Stage IV patients
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "Stage IV"] <- NA
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "AJCC Stage Group unknown"] <- "Unknown"
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "AJCC Staging not applicable"] <- "Unknown"
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "Unknown"] <- NA
### Recoding data in Tumor Grade Column
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Cell type not determined, not stated or not applicable, unknown primaries, high grade dysplasia"] <- "Unknown"
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Undifferentiated, anaplastic"] <- "Undifferentiated"
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Moderately differentiated, moderately well differentiated, intermediate differentiation"] <- "Moderately differentiated"
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Well differentiated, differentiated, NOS"] <- "Well differentiated"
###recode the surgical approach and make MIS converted to Open the same as MIS just before subsetting MIS and Open into new dataframe
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="MIS Converted to open"] <- "MIS"
###Subsetting MIS vs Conversion to MIS vs Open into one Dataframe
ITTMISvsOpenNCDB <-
subset(NCDBDistalPancreatectomy, RX_HOSP_SURG_APPR_2010 == "MIS" | RX_HOSP_SURG_APPR_2010 == "Mis Converted to open" | RX_HOSP_SURG_APPR_2010 == "Open")
##Subsetting MIS vs Conversion to MIS
MISvsConversionNCDB <-
subset(NCDBDistalPancreatectomy, RX_HOSP_SURG_APPR_2010 == "MIS" | RX_HOSP_SURG_APPR_2010 == "MIS Converted to open")
#### Subsetting cleaned data from one dataframe to a new dataframe
MISvsMISConversionNCDBDemographicTable <-
MISvsConversionNCDB %>%
select(RX_HOSP_SURG_APPR_2010, AGE, SEX, RACE.2, INSURANCE_STATUS.2, FACILITY_LOCATION_CD, MED_INC_QUAR_12, NO_HSD_QUAR_12, UR_CD_13, CDCC_TOTAL_BEST, ANALYTIC_STAGE_GROUP, GRADE, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS)
MISvsConversionvsOpenNCDBDemoTable <-
ITTMISvsOpenNCDB %>%
select(RX_HOSP_SURG_APPR_2010, AGE, SEX, RACE.2, INSURANCE_STATUS.2, FACILITY_LOCATION_CD, MED_INC_QUAR_12, NO_HSD_QUAR_12, UR_CD_13, CDCC_TOTAL_BEST, ANALYTIC_STAGE_GROUP, GRADE, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS)
###Labeling Columns for MISvsCOnversionVsopenNCDBDemotable
var_label(MISvsConversionvsOpenNCDBDemoTable$AGE) <- "Age"
var_label(MISvsConversionvsOpenNCDBDemoTable$SEX) <- "Sex"
var_label(MISvsConversionvsOpenNCDBDemoTable$RACE.2) <- "Race"
var_label(MISvsConversionvsOpenNCDBDemoTable$SMOKE) <- "Smoker"
var_label(MISvsConversionvsOpenNCDBDemoTable$INSURANCE_STATUS.2) <- "Insurance Status"
var_label(MISvsConversionvsOpenNCDBDemoTable$FACILITY_LOCATION_CD) <- "Region"
var_label(MISvsConversionvsOpenNCDBDemoTable$MED_INC_QUAR_12) <- "Income"
var_label(MISvsConversionvsOpenNCDBDemoTable$NO_HSD_QUAR_12) <- "No High School Degree"
var_label(MISvsConversionvsOpenNCDBDemoTable$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(MISvsConversionvsOpenNCDBDemoTable$UR_CD_13) <- "Population"
var_label(MISvsConversionvsOpenNCDBDemoTable$RX_HOSP_SURG_APPR_2010) <- "Surgery"
var_label(MISvsConversionvsOpenNCDBDemoTable$ANALYTIC_STAGE_GROUP) <- "Staging"
var_label(MISvsConversionvsOpenNCDBDemoTable$GRADE) <- "Tumor Grade"
var_label(MISvsConversionvsOpenNCDBDemoTable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(MISvsConversionvsOpenNCDBDemoTable$PUF_VITAL_STATUS) <- "Vital Status"
###Labeling Columns for MISvsMISConversionNCDBDemographicTable
var_label(MISvsMISConversionNCDBDemographicTable$AGE) <- "Age"
var_label(MISvsMISConversionNCDBDemographicTable$SEX) <- "Sex"
var_label(MISvsMISConversionNCDBDemographicTable$RACE.2) <- "Race"
var_label(MISvsMISConversionNCDBDemographicTable$SMOKE) <- "Smoker"
var_label(MISvsMISConversionNCDBDemographicTable$INSURANCE_STATUS.2) <- "Insurance Status"
var_label(MISvsMISConversionNCDBDemographicTable$FACILITY_LOCATION_CD) <- "Region"
var_label(MISvsMISConversionNCDBDemographicTable$MED_INC_QUAR_12) <- "Income"
var_label(MISvsMISConversionNCDBDemographicTable$NO_HSD_QUAR_12) <- "No High School Degree"
var_label(MISvsMISConversionNCDBDemographicTable$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(MISvsMISConversionNCDBDemographicTable$UR_CD_13) <- "Population"
var_label(MISvsMISConversionNCDBDemographicTable$RX_HOSP_SURG_APPR_2010) <- "Surgery"
var_label(MISvsMISConversionNCDBDemographicTable$ANALYTIC_STAGE_GROUP) <- "Staging"
var_label(MISvsMISConversionNCDBDemographicTable$GRADE) <- "Tumor Grade"
var_label(MISvsMISConversionNCDBDemographicTable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(MISvsMISConversionNCDBDemographicTable$PUF_VITAL_STATUS) <- "Vital Status"
##As.factor misvsmisconversionncdbdemographictable
MISvsMISConversionNCDBDemographicTable <- as.factor(MISvsMISConversionNCDBDemographicTable)
#Final Step to create demographic table
MISvsConversionvsOpenNCDBDemoTable %>%
tbl_summary(
by = RX_HOSP_SURG_APPR_2010,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
bold_p() %>%
add_overall() %>%
modify_header(label ~ "**Variables**") %>%
modify_spanning_header(c("stat_0", "stat_1") ~ "**NCDB Long Term Outcomes**") %>%
bold_labels()
###No high school degree blanks to NA's
MISvsConversionvsOpenNCDBDemoTable$NO_HSD_QUAR_12[MISvsConversionvsOpenNCDBDemoTable$NO_HSD_QUAR_12 ==""] <- NA
#####Survival Analysis Ensure that vital status is labeled as 1= Alive and 2=Death
MISvsConversionvsOpenNCDBDemoTable$PUF_VITAL_STATUS[MISvsConversionvsOpenNCDBDemoTable$PUF_VITAL_STATUS == "Dead"] <- 2
MISvsConversionvsOpenNCDBDemoTable$PUF_VITAL_STATUS[MISvsConversionvsOpenNCDBDemoTable$PUF_VITAL_STATUS == "Alive"] <- 1
###Subset the data so it's Only "Open" patients & only prior to survival analysis
OpenSurvivalAnalysis <-
subset(MISvsConversionvsOpenNCDBDemoTable, RX_HOSP_SURG_APPR_2010 == "Open")
###pufvitalstatus should be numeric
MISvsConversionvsOpenNCDBDemoTable$PUF_VITAL_STATUS <- as.numeric(MISvsConversionvsOpenNCDBDemoTable$PUF_VITAL_STATUS)
### Univariant Survival Neoadj
UVSurv <-
MISvsConversionvsOpenNCDBDemoTable %>%
select(RX_HOSP_SURG_APPR_2010, RACE.2, INSURANCE_STATUS.2, FACILITY_LOCATION_CD, MED_INC_QUAR_12, NO_HSD_QUAR_12, ANALYTIC_STAGE_GROUP, GRADE, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS) %>%
tbl_uvregression(
method = coxph,
y = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS),
exponentiate = TRUE) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
###Multivariant survival Neoadj
MVSurv <-
coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS) ~ RX_HOSP_SURG_APPR_2010 + RACE.2 + INSURANCE_STATUS.2 + FACILITY_LOCATION_CD + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + ANALYTIC_STAGE_GROUP + GRADE,
data = MISvsConversionvsOpenNCDBDemoTable
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurv, MVSurv),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Return to the OR Odds Ratio MIS vs Open
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NSQIPShortTermOutcomes <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
##Creating BMI column from heigh, weight
NSQIPShortTermOutcomes$BMI <- (NSQIPShortTermOutcomes$WEIGHT * 703) / (NSQIPShortTermOutcomes$HEIGHT * NSQIPShortTermOutcomes$HEIGHT)
#### Labeling columns
var_label(IntentiontotreatFinal$SEX) <- "Sex"
var_label(IntentiontotreatFinal$RACE_NEW) <- "Race"
var_label(IntentiontotreatFinal$ASACLAS) <- "ASA Classification"
var_label(IntentiontotreatFinal$Fistula.Grade) <- "Fistula"
var_label(IntentiontotreatFinal$OPTIME) <- "Total operation time"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Number of Pneumonia Occurrences"
var_label(IntentiontotreatFinal$DOpertoD) <- "Mortality"
var_label(IntentiontotreatFinal$TOTHLOS) <- "Length of total hospital stay"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Occurrences Pneumonia"
var_label(IntentiontotreatFinal$PULEMBOL) <- "Occurrences Pulmonary Embolism"
var_label(IntentiontotreatFinal$WNDINFD) <- " Occurrences Deep Incisional SSI"
var_label(IntentiontotreatFinal$STILLINHOSP) <- "Still in Hospital > 30 Days"
var_label(IntentiontotreatFinal$REOPERATION1) <- "Unplanned Reoperation 1"
var_label(IntentiontotreatFinal$OTHSYSEP) <- "Occurrences Sepsis"
var_label(IntentiontotreatFinal$SeriousComplication) <- "Serious Complication"
var_label(IntentiontotreatFinal$AnyComplication) <- "Any Complication"
##Subsetting the datafram by literally anything
MISVSCONVERSIONDemotable <-
subset(NSQIPDemographicTable, PAN_APPROACH == "MIS" | PAN_APPROACH == "MIS Converted to Open")
FRSFUll <-
subset(FRSFUll, CPT == "48140" | CPT == "48145")
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS Converted to Open"] <- "Intention to Treat MIS"
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS"] <- "Intention to Treat MIS"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "SIRS"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Septic Shock"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Sepsis"] <- "Yes"
NSQIPShortTermOutcomes$ASACLAS[NSQIPShortTermOutcomes$ASACLAS =="None assigned"] <- "Unknown"
NSQIPDemographicTable1 <- table(NSQIPDemographicTable$PAN_APPROACH, NSQIPDemographicTable$ASACLAS)
###Recoding Variables in DopertoD numbers > yes and any NA's to No
NSQIPShortTermOutcomes[NSQIPShortTermOutcomes$DOpertoD =="NA",]$DOpertoD <- "No"
NSQIPShortTermOutcomes$DOpertoD[NSQIPShortTermOutcomes$DOpertoD ==NA] <- "No"
NSQIPShortTermOutcomes$DOpertoD <- as.character(NSQIPShortTermOutcomes$DOpertoD)
NSQIPShortTermOutcomes$DOpertoD[is.na(NSQIPShortTermOutcomes$DOpertoD)] <- "No"
#Ifelse function to create new column for serious complication and any complication
MISITTDemoTable <-
mutate(NSQIPShortTermOutcomes, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
MISITTDemoTable1 <- MISITTDemoTable %>%
mutate(MISITTDemoTable, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
print(NSQIPShortTermOutcomes$OUPNEUMO)
#### Subsetting cleaned data from one dataframe to a new dataframe
IntentiontotreatFinal <-
MISITTDemoTable1 %>%
select(PAN_APPROACH, Age, SEX, BMI, RACE_NEW, ASACLAS, DOpertoD, Fistula.Grade, OPTIME, TOTHLOS, CDARREST, CDMI, NRENAINSF, OPRENAFL, OTHDVT, OUPNEUMO, PULEMBOL, WNDINFD, URNINFEC, DEHIS, STILLINHOSP, REOPERATION1, RETURNOR, REINTUB, ORGSPCSSI, OTHSYSEP, PRSEPIS, FAILWEAN, CNSCVA, SeriousComplication, AnyComplication)
## Changing any Unknowns/none assigned to NA
IntentiontotreatFinal[IntentiontotreatFinal =="None assigned"] <- NA
IntentiontotreatFinal[IntentiontotreatFinal =="Unknown"] <- NA
#Final Step to create demographic table
IntentiontotreatFinal %>%
tbl_summary(
by = PAN_APPROACH,
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") ~ "**NSQIP Short Term Outcomes**") %>%
bold_labels()
##Creating New Column for Age breakdown
IntentiontotreatFinal <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
ITTMortOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, Mortality = ifelse(DOpertoD =="Yes", "1",
ifelse(DOpertoD =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
ITTMortOR$Mortality <- as.numeric(ITTMortOR$Mortality)
###Try removing 5-moribound from the odds ratio
ITTMortOR$ASACLAS[ITTMortOR$ASACLAS =="5-Moribund"] <- NA
##Univariant Model MISvsITT mortality
UVMortalityOR <- ITTMortOR %>%
select(PAN_APPROACH, Mortality, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = Mortality,
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 MISvsITTmortality
MVOR <-
glm(Mortality ~ PAN_APPROACH + SEX + ASACLAS,
data = ITTMortOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UVMortalityOR, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
####Intention to Treat changing BMI to actually have a column with that creates a obese cutoff
###Creating dataframe where event is serious complication for open patients
SeriousComplicationOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, SeriousComplication1 = ifelse(SeriousComplication =="Yes", "1",
ifelse(SeriousComplication =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
SeriousComplicationOR$SeriousComplication1 <- as.numeric(SeriousComplicationOR$SeriousComplication1)
###Creating dataframe where event is any complication for open patients
AnyComplicationOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, Anycomplication1 = ifelse(AnyComplication =="Yes", "1",
ifelse(AnyComplication =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
AnyComplicationOR$Anycomplication1 <- as.numeric(AnyComplicationOR$Anycomplication1)
###Creating dataframe where event is Return to OR for open patients
ReturntoOROddsRatio <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, ReturntoOR1 = ifelse(RETURNOR =="Yes", "1",
ifelse(RETURNOR =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
ReturntoOROddsRatio$ReturntoOR1 <- as.numeric(ReturntoOROddsRatio$ReturntoOR1)
###Try removing 5-moribound from the odds ratio
IntentiontotreatFinal$ASACLAS[IntentiontotreatFinal$ASACLAS =="5-Moribund"] <- NA
##Univariant Model Seriouscomplication
UV <- SeriousComplicationOR %>%
select(PAN_APPROACH, SeriousComplication1, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = SeriousComplication1,
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
MVOR <-
glm(SeriousComplication1 ~ PAN_APPROACH + SEX + BMIB + ASACLAS + BMI,
data = SeriousComplicationOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
##Univariant Model Seriouscomplication
UV <- AnyComplicationOR %>%
select(PAN_APPROACH, Anycomplication1, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = Anycomplication1,
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 Any complications
MVOR <-
glm(Anycomplication1 ~ PAN_APPROACH + SEX + ASACLAS + BMIB,
data = AnyComplicationOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
##Univariant Model ReturntoOR
UV <- ReturntoOROddsRatio %>%
select(PAN_APPROACH, ReturntoOR1, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = ReturntoOR1,
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 returntoOR
MVOR <-
glm(ReturntoOR1 ~ PAN_APPROACH + SEX + ASACLAS + RACE_NEW,
data = ReturntoOROddsRatio,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Any Complication Odds Ratio MIS vs Open
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NSQIPShortTermOutcomes <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
##Creating BMI column from heigh, weight
NSQIPShortTermOutcomes$BMI <- (NSQIPShortTermOutcomes$WEIGHT * 703) / (NSQIPShortTermOutcomes$HEIGHT * NSQIPShortTermOutcomes$HEIGHT)
#### Labeling columns
var_label(IntentiontotreatFinal$SEX) <- "Sex"
var_label(IntentiontotreatFinal$RACE_NEW) <- "Race"
var_label(IntentiontotreatFinal$ASACLAS) <- "ASA Classification"
var_label(IntentiontotreatFinal$Fistula.Grade) <- "Fistula"
var_label(IntentiontotreatFinal$OPTIME) <- "Total operation time"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Number of Pneumonia Occurrences"
var_label(IntentiontotreatFinal$DOpertoD) <- "Mortality"
var_label(IntentiontotreatFinal$TOTHLOS) <- "Length of total hospital stay"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Occurrences Pneumonia"
var_label(IntentiontotreatFinal$PULEMBOL) <- "Occurrences Pulmonary Embolism"
var_label(IntentiontotreatFinal$WNDINFD) <- " Occurrences Deep Incisional SSI"
var_label(IntentiontotreatFinal$STILLINHOSP) <- "Still in Hospital > 30 Days"
var_label(IntentiontotreatFinal$REOPERATION1) <- "Unplanned Reoperation 1"
var_label(IntentiontotreatFinal$OTHSYSEP) <- "Occurrences Sepsis"
var_label(IntentiontotreatFinal$SeriousComplication) <- "Serious Complication"
var_label(IntentiontotreatFinal$AnyComplication) <- "Any Complication"
##Subsetting the datafram by literally anything
MISVSCONVERSIONDemotable <-
subset(NSQIPDemographicTable, PAN_APPROACH == "MIS" | PAN_APPROACH == "MIS Converted to Open")
FRSFUll <-
subset(FRSFUll, CPT == "48140" | CPT == "48145")
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS Converted to Open"] <- "Intention to Treat MIS"
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS"] <- "Intention to Treat MIS"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "SIRS"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Septic Shock"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Sepsis"] <- "Yes"
NSQIPShortTermOutcomes$ASACLAS[NSQIPShortTermOutcomes$ASACLAS =="None assigned"] <- "Unknown"
NSQIPDemographicTable1 <- table(NSQIPDemographicTable$PAN_APPROACH, NSQIPDemographicTable$ASACLAS)
###Recoding Variables in DopertoD numbers > yes and any NA's to No
NSQIPShortTermOutcomes[NSQIPShortTermOutcomes$DOpertoD =="NA",]$DOpertoD <- "No"
NSQIPShortTermOutcomes$DOpertoD[NSQIPShortTermOutcomes$DOpertoD ==NA] <- "No"
NSQIPShortTermOutcomes$DOpertoD <- as.character(NSQIPShortTermOutcomes$DOpertoD)
NSQIPShortTermOutcomes$DOpertoD[is.na(NSQIPShortTermOutcomes$DOpertoD)] <- "No"
#Ifelse function to create new column for serious complication and any complication
MISITTDemoTable <-
mutate(NSQIPShortTermOutcomes, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
MISITTDemoTable1 <- MISITTDemoTable %>%
mutate(MISITTDemoTable, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
print(NSQIPShortTermOutcomes$OUPNEUMO)
#### Subsetting cleaned data from one dataframe to a new dataframe
IntentiontotreatFinal <-
MISITTDemoTable1 %>%
select(PAN_APPROACH, Age, SEX, BMI, RACE_NEW, ASACLAS, DOpertoD, Fistula.Grade, OPTIME, TOTHLOS, CDARREST, CDMI, NRENAINSF, OPRENAFL, OTHDVT, OUPNEUMO, PULEMBOL, WNDINFD, URNINFEC, DEHIS, STILLINHOSP, REOPERATION1, RETURNOR, REINTUB, ORGSPCSSI, OTHSYSEP, PRSEPIS, FAILWEAN, CNSCVA, SeriousComplication, AnyComplication)
## Changing any Unknowns/none assigned to NA
IntentiontotreatFinal[IntentiontotreatFinal =="None assigned"] <- NA
IntentiontotreatFinal[IntentiontotreatFinal =="Unknown"] <- NA
#Final Step to create demographic table
IntentiontotreatFinal %>%
tbl_summary(
by = PAN_APPROACH,
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") ~ "**NSQIP Short Term Outcomes**") %>%
bold_labels()
##Creating New Column for Age breakdown
IntentiontotreatFinal <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
ITTMortOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, Mortality = ifelse(DOpertoD =="Yes", "1",
ifelse(DOpertoD =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
ITTMortOR$Mortality <- as.numeric(ITTMortOR$Mortality)
###Try removing 5-moribound from the odds ratio
ITTMortOR$ASACLAS[ITTMortOR$ASACLAS =="5-Moribund"] <- NA
##Univariant Model MISvsITT mortality
UVMortalityOR <- ITTMortOR %>%
select(PAN_APPROACH, Mortality, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = Mortality,
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 MISvsITTmortality
MVOR <-
glm(Mortality ~ PAN_APPROACH + SEX + ASACLAS,
data = ITTMortOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UVMortalityOR, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
####Intention to Treat changing BMI to actually have a column with that creates a obese cutoff
###Creating dataframe where event is serious complication for open patients
SeriousComplicationOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, SeriousComplication1 = ifelse(SeriousComplication =="Yes", "1",
ifelse(SeriousComplication =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
SeriousComplicationOR$SeriousComplication1 <- as.numeric(SeriousComplicationOR$SeriousComplication1)
###Creating dataframe where event is any complication for open patients
AnyComplicationOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, Anycomplication1 = ifelse(AnyComplication =="Yes", "1",
ifelse(AnyComplication =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
AnyComplicationOR$Anycomplication1 <- as.numeric(AnyComplicationOR$Anycomplication1)
###Creating dataframe where event is Return to OR for open patients
ReturntoOROddsRatio <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, ReturntoOR1 = ifelse(RETURNOR =="Yes", "1",
ifelse(RETURNOR =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
ReturntoOROddsRatio$ReturntoOR1 <- as.numeric(ReturntoOROddsRatio$ReturntoOR1)
###Try removing 5-moribound from the odds ratio
IntentiontotreatFinal$ASACLAS[IntentiontotreatFinal$ASACLAS =="5-Moribund"] <- NA
##Univariant Model Seriouscomplication
UV <- SeriousComplicationOR %>%
select(PAN_APPROACH, SeriousComplication1, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = SeriousComplication1,
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
MVOR <-
glm(SeriousComplication1 ~ PAN_APPROACH + SEX + BMIB + ASACLAS + BMI,
data = SeriousComplicationOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
##Univariant Model Seriouscomplication
UV <- AnyComplicationOR %>%
select(PAN_APPROACH, Anycomplication1, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = Anycomplication1,
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 Any complications
MVOR <-
glm(Anycomplication1 ~ PAN_APPROACH + SEX + ASACLAS + BMIB,
data = AnyComplicationOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
##Univariant Model ReturntoOR
UV <- ReturntoOROddsRatio %>%
select(PAN_APPROACH, ReturntoOR1, SEX, BMI, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = ReturntoOR1,
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 returntoOR
MVOR <-
glm(ReturntoOR1 ~ PAN_APPROACH + SEX + ASACLAS + RACE_NEW + BMI,
data = ReturntoOROddsRatio,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Serious Complication Odds Ratio MIS vs Open
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NSQIPShortTermOutcomes <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
##Creating BMI column from heigh, weight
NSQIPShortTermOutcomes$BMI <- (NSQIPShortTermOutcomes$WEIGHT * 703) / (NSQIPShortTermOutcomes$HEIGHT * NSQIPShortTermOutcomes$HEIGHT)
#### Labeling columns
var_label(IntentiontotreatFinal$SEX) <- "Sex"
var_label(IntentiontotreatFinal$RACE_NEW) <- "Race"
var_label(IntentiontotreatFinal$ASACLAS) <- "ASA Classification"
var_label(IntentiontotreatFinal$Fistula.Grade) <- "Fistula"
var_label(IntentiontotreatFinal$OPTIME) <- "Total operation time"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Number of Pneumonia Occurrences"
var_label(IntentiontotreatFinal$DOpertoD) <- "Mortality"
var_label(IntentiontotreatFinal$TOTHLOS) <- "Length of total hospital stay"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Occurrences Pneumonia"
var_label(IntentiontotreatFinal$PULEMBOL) <- "Occurrences Pulmonary Embolism"
var_label(IntentiontotreatFinal$WNDINFD) <- " Occurrences Deep Incisional SSI"
var_label(IntentiontotreatFinal$STILLINHOSP) <- "Still in Hospital > 30 Days"
var_label(IntentiontotreatFinal$REOPERATION1) <- "Unplanned Reoperation 1"
var_label(IntentiontotreatFinal$OTHSYSEP) <- "Occurrences Sepsis"
var_label(IntentiontotreatFinal$SeriousComplication) <- "Serious Complication"
var_label(IntentiontotreatFinal$AnyComplication) <- "Any Complication"
##Subsetting the datafram by literally anything
MISVSCONVERSIONDemotable <-
subset(NSQIPDemographicTable, PAN_APPROACH == "MIS" | PAN_APPROACH == "MIS Converted to Open")
FRSFUll <-
subset(FRSFUll, CPT == "48140" | CPT == "48145")
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS Converted to Open"] <- "Intention to Treat MIS"
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS"] <- "Intention to Treat MIS"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "SIRS"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Septic Shock"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Sepsis"] <- "Yes"
NSQIPShortTermOutcomes$ASACLAS[NSQIPShortTermOutcomes$ASACLAS =="None assigned"] <- "Unknown"
NSQIPDemographicTable1 <- table(NSQIPDemographicTable$PAN_APPROACH, NSQIPDemographicTable$ASACLAS)
###Recoding Variables in DopertoD numbers > yes and any NA's to No
NSQIPShortTermOutcomes[NSQIPShortTermOutcomes$DOpertoD =="NA",]$DOpertoD <- "No"
NSQIPShortTermOutcomes$DOpertoD[NSQIPShortTermOutcomes$DOpertoD ==NA] <- "No"
NSQIPShortTermOutcomes$DOpertoD <- as.character(NSQIPShortTermOutcomes$DOpertoD)
NSQIPShortTermOutcomes$DOpertoD[is.na(NSQIPShortTermOutcomes$DOpertoD)] <- "No"
#Ifelse function to create new column for serious complication and any complication
MISITTDemoTable <-
mutate(NSQIPShortTermOutcomes, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
MISITTDemoTable1 <- MISITTDemoTable %>%
mutate(MISITTDemoTable, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
print(NSQIPShortTermOutcomes$OUPNEUMO)
#### Subsetting cleaned data from one dataframe to a new dataframe
IntentiontotreatFinal <-
MISITTDemoTable1 %>%
select(PAN_APPROACH, Age, SEX, BMI, RACE_NEW, ASACLAS, DOpertoD, Fistula.Grade, OPTIME, TOTHLOS, CDARREST, CDMI, NRENAINSF, OPRENAFL, OTHDVT, OUPNEUMO, PULEMBOL, WNDINFD, URNINFEC, DEHIS, STILLINHOSP, REOPERATION1, RETURNOR, REINTUB, ORGSPCSSI, OTHSYSEP, PRSEPIS, FAILWEAN, CNSCVA, SeriousComplication, AnyComplication)
## Changing any Unknowns/none assigned to NA
IntentiontotreatFinal[IntentiontotreatFinal =="None assigned"] <- NA
IntentiontotreatFinal[IntentiontotreatFinal =="Unknown"] <- NA
#Final Step to create demographic table
IntentiontotreatFinal %>%
tbl_summary(
by = PAN_APPROACH,
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") ~ "**NSQIP Short Term Outcomes**") %>%
bold_labels()
##Creating New Column for Age breakdown
IntentiontotreatFinal <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
ITTMortOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, Mortality = ifelse(DOpertoD =="Yes", "1",
ifelse(DOpertoD =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
ITTMortOR$Mortality <- as.numeric(ITTMortOR$Mortality)
###Try removing 5-moribound from the odds ratio
ITTMortOR$ASACLAS[ITTMortOR$ASACLAS =="5-Moribund"] <- NA
##Univariant Model MISvsITT mortality
UVMortalityOR <- ITTMortOR %>%
select(PAN_APPROACH, Mortality, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = Mortality,
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 MISvsITTmortality
MVOR <-
glm(Mortality ~ PAN_APPROACH + SEX + ASACLAS,
data = ITTMortOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UVMortalityOR, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
####Intention to Treat changing BMI to actually have a column with that creates a obese cutoff
###Creating dataframe where event is serious complication for open patients
SeriousComplicationOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, SeriousComplication1 = ifelse(SeriousComplication =="Yes", "1",
ifelse(SeriousComplication =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
SeriousComplicationOR$SeriousComplication1 <- as.numeric(SeriousComplicationOR$SeriousComplication1)
###Creating dataframe where event is any complication for open patients
AnyComplicationOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, Anycomplication1 = ifelse(AnyComplication =="Yes", "1",
ifelse(AnyComplication =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
AnyComplicationOR$Anycomplication1 <- as.numeric(AnyComplicationOR$Anycomplication1)
###Creating dataframe where event is Return to OR for open patients
ReturntoOROddsRatio <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, ReturntoOR1 = ifelse(RETURNOR =="Yes", "1",
ifelse(RETURNOR =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
ReturntoOROddsRatio$ReturntoOR1 <- as.numeric(ReturntoOROddsRatio$ReturntoOR1)
###Try removing 5-moribound from the odds ratio
IntentiontotreatFinal$ASACLAS[IntentiontotreatFinal$ASACLAS =="5-Moribund"] <- NA
##Univariant Model Seriouscomplication
UV <- SeriousComplicationOR %>%
select(PAN_APPROACH, SeriousComplication1, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = SeriousComplication1,
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
MVOR <-
glm(SeriousComplication1 ~ PAN_APPROACH + SEX + BMIB + ASACLAS + BMI,
data = SeriousComplicationOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
##Univariant Model Seriouscomplication
UV <- AnyComplicationOR %>%
select(PAN_APPROACH, Anycomplication1, SEX, BMI, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = Anycomplication1,
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 Any complications
MVOR <-
glm(Anycomplication1 ~ PAN_APPROACH + SEX + ASACLAS + BMI,
data = AnyComplicationOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
##Univariant Model ReturntoOR
UV <- ReturntoOROddsRatio %>%
select(PAN_APPROACH, ReturntoOR1, SEX, BMI, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = ReturntoOR1,
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 returntoOR
MVOR <-
glm(ReturntoOR1 ~ PAN_APPROACH + SEX + ASACLAS + RACE_NEW + BMI,
data = ReturntoOROddsRatio,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UV, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
ITT MIS vs Open Odds Ratio Mortality
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NSQIPShortTermOutcomes <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
##Creating BMI column from heigh, weight
NSQIPShortTermOutcomes$BMI <- (NSQIPShortTermOutcomes$WEIGHT * 703) / (NSQIPShortTermOutcomes$HEIGHT * NSQIPShortTermOutcomes$HEIGHT)
#### Labeling columns
var_label(IntentiontotreatFinal$SEX) <- "Sex"
var_label(IntentiontotreatFinal$RACE_NEW) <- "Race"
var_label(IntentiontotreatFinal$ASACLAS) <- "ASA Classification"
var_label(IntentiontotreatFinal$Fistula.Grade) <- "Fistula"
var_label(IntentiontotreatFinal$OPTIME) <- "Total operation time"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Number of Pneumonia Occurrences"
var_label(IntentiontotreatFinal$DOpertoD) <- "Mortality"
var_label(IntentiontotreatFinal$TOTHLOS) <- "Length of total hospital stay"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Occurrences Pneumonia"
var_label(IntentiontotreatFinal$PULEMBOL) <- "Occurrences Pulmonary Embolism"
var_label(IntentiontotreatFinal$WNDINFD) <- " Occurrences Deep Incisional SSI"
var_label(IntentiontotreatFinal$STILLINHOSP) <- "Still in Hospital > 30 Days"
var_label(IntentiontotreatFinal$REOPERATION1) <- "Unplanned Reoperation 1"
var_label(IntentiontotreatFinal$OTHSYSEP) <- "Occurrences Sepsis"
var_label(IntentiontotreatFinal$SeriousComplication) <- "Serious Complication"
var_label(IntentiontotreatFinal$AnyComplication) <- "Any Complication"
##Subsetting the datafram by literally anything
MISVSCONVERSIONDemotable <-
subset(NSQIPDemographicTable, PAN_APPROACH == "MIS" | PAN_APPROACH == "MIS Converted to Open")
FRSFUll <-
subset(FRSFUll, CPT == "48140" | CPT == "48145")
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS Converted to Open"] <- "Intention to Treat MIS"
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS"] <- "Intention to Treat MIS"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "SIRS"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Septic Shock"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Sepsis"] <- "Yes"
NSQIPShortTermOutcomes$ASACLAS[NSQIPShortTermOutcomes$ASACLAS =="None assigned"] <- "Unknown"
NSQIPDemographicTable1 <- table(NSQIPDemographicTable$PAN_APPROACH, NSQIPDemographicTable$ASACLAS)
###Recoding Variables in DopertoD numbers > yes and any NA's to No
NSQIPShortTermOutcomes[NSQIPShortTermOutcomes$DOpertoD =="NA",]$DOpertoD <- "No"
NSQIPShortTermOutcomes$DOpertoD[NSQIPShortTermOutcomes$DOpertoD ==NA] <- "No"
NSQIPShortTermOutcomes$DOpertoD <- as.character(NSQIPShortTermOutcomes$DOpertoD)
NSQIPShortTermOutcomes$DOpertoD[is.na(NSQIPShortTermOutcomes$DOpertoD)] <- "No"
#Ifelse function to create new column for serious complication and any complication
MISITTDemoTable <-
mutate(NSQIPShortTermOutcomes, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
MISITTDemoTable1 <- MISITTDemoTable %>%
mutate(MISITTDemoTable, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
print(NSQIPShortTermOutcomes$OUPNEUMO)
#### Subsetting cleaned data from one dataframe to a new dataframe
IntentiontotreatFinal <-
MISITTDemoTable1 %>%
select(PAN_APPROACH, Age, SEX, BMI, RACE_NEW, ASACLAS, DOpertoD, Fistula.Grade, OPTIME, TOTHLOS, CDARREST, CDMI, NRENAINSF, OPRENAFL, OTHDVT, OUPNEUMO, PULEMBOL, WNDINFD, URNINFEC, DEHIS, STILLINHOSP, REOPERATION1, RETURNOR, REINTUB, ORGSPCSSI, OTHSYSEP, PRSEPIS, FAILWEAN, CNSCVA, SeriousComplication, AnyComplication)
## Changing any Unknowns/none assigned to NA
IntentiontotreatFinal[IntentiontotreatFinal =="None assigned"] <- NA
IntentiontotreatFinal[IntentiontotreatFinal =="Unknown"] <- NA
#Final Step to create demographic table
IntentiontotreatFinal %>%
tbl_summary(
by = PAN_APPROACH,
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") ~ "**NSQIP Short Term Outcomes**") %>%
bold_labels()
##Creating New Column for Age breakdown
IntentiontotreatFinal <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, BMIB = ifelse(BMI >= 30, "Obese",
ifelse(BMI <= 30, "Non-Obese", "NA")))
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
ITTMortOR <-
IntentiontotreatFinal %>%
mutate(IntentiontotreatFinal, Mortality = ifelse(DOpertoD =="Yes", "1",
ifelse(DOpertoD =="No", "0", "NA")))
### Mortality --> numeric in the ITTMORTOR column before running logistic regression
ITTMortOR$Mortality <- as.numeric(ITTMortOR$Mortality)
###Try removing 5-moribound from the odds ratio
ITTMortOR$ASACLAS[ITTMortOR$ASACLAS =="5-Moribund"] <- NA
##Univariant Model MISvsITT mortality
UVMortalityOR <- ITTMortOR %>%
select(PAN_APPROACH, Mortality, SEX, BMIB, RACE_NEW, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = Mortality,
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 MISvsITTmortality
MVOR <-
glm(Mortality ~ PAN_APPROACH + SEX + ASACLAS,
data = ITTMortOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UVMortalityOR, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Intention to Treat MIS vs Open Demo table with Serious Complication or any complication
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NSQIPShortTermOutcomes <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
##Creating BMI column from heigh, weight
NSQIPShortTermOutcomes$BMI <- (NSQIPShortTermOutcomes$WEIGHT * 703) / (NSQIPShortTermOutcomes$HEIGHT * NSQIPShortTermOutcomes$HEIGHT)
#### Labeling columns
var_label(IntentiontotreatFinal$SEX) <- "Sex"
var_label(IntentiontotreatFinal$RACE_NEW) <- "Race"
var_label(IntentiontotreatFinal$ASACLAS) <- "ASA Classification"
var_label(IntentiontotreatFinal$Fistula.Grade) <- "Fistula"
var_label(IntentiontotreatFinal$OPTIME) <- "Total operation time"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Number of Pneumonia Occurrences"
var_label(IntentiontotreatFinal$DOpertoD) <- "Mortality"
var_label(IntentiontotreatFinal$TOTHLOS) <- "Length of total hospital stay"
var_label(IntentiontotreatFinal$OUPNEUMO) <- "Occurrences Pneumonia"
var_label(IntentiontotreatFinal$PULEMBOL) <- "Occurrences Pulmonary Embolism"
var_label(IntentiontotreatFinal$WNDINFD) <- " Occurrences Deep Incisional SSI"
var_label(IntentiontotreatFinal$STILLINHOSP) <- "Still in Hospital > 30 Days"
var_label(IntentiontotreatFinal$REOPERATION1) <- "Unplanned Reoperation 1"
var_label(IntentiontotreatFinal$OTHSYSEP) <- "Occurrences Sepsis"
var_label(IntentiontotreatFinal$SeriousComplication) <- "Serious Complication"
var_label(IntentiontotreatFinal$AnyComplication) <- "Any Complication"
##Subsetting the datafram by literally anything
MISVSCONVERSIONDemotable <-
subset(NSQIPDemographicTable, PAN_APPROACH == "MIS" | PAN_APPROACH == "MIS Converted to Open")
FRSFUll <-
subset(FRSFUll, CPT == "48140" | CPT == "48145")
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS Converted to Open"] <- "Intention to Treat MIS"
MISITTDemoTable1$PAN_APPROACH[MISITTDemoTable1$PAN_APPROACH =="MIS"] <- "Intention to Treat MIS"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "SIRS"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Septic Shock"] <- "Yes"
NSQIPShortTermOutcomes$PRSEPIS[NSQIPShortTermOutcomes$PRSEPIS == "Sepsis"] <- "Yes"
NSQIPShortTermOutcomes$ASACLAS[NSQIPShortTermOutcomes$ASACLAS =="None assigned"] <- "Unknown"
NSQIPDemographicTable1 <- table(NSQIPDemographicTable$PAN_APPROACH, NSQIPDemographicTable$ASACLAS)
###Recoding Variables in DopertoD numbers > yes and any NA's to No
NSQIPShortTermOutcomes[NSQIPShortTermOutcomes$DOpertoD =="NA",]$DOpertoD <- "No"
NSQIPShortTermOutcomes$DOpertoD[NSQIPShortTermOutcomes$DOpertoD ==NA] <- "No"
NSQIPShortTermOutcomes$DOpertoD <- as.character(NSQIPShortTermOutcomes$DOpertoD)
NSQIPShortTermOutcomes$DOpertoD[is.na(NSQIPShortTermOutcomes$DOpertoD)] <- "No"
#Ifelse function to create new column for serious complication and any complication
MISITTDemoTable <-
mutate(NSQIPShortTermOutcomes, SeriousComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No"))))))))))))))
### Ifelse function to create new column for any complication
MISITTDemoTable1 <- MISITTDemoTable %>%
mutate(MISITTDemoTable, AnyComplication = ifelse(CDARREST == "Cardiac Arrest Requiring CPR", "Yes",
ifelse(CDMI == "Myocardial Infarction", "Yes",
ifelse(OUPNEUMO == "Pneumonia", "Yes",
ifelse(RENAINSF == "Progressive Renal Insufficiency", "Yes",
ifelse(OPRENAFL == "Acute Renal Failure", "Yes",
ifelse(PULEMBOL == "Pulmonary Embolism", "Yes",
ifelse(OTHDVT == "DVT Requiring Therapy", "Yes",
ifelse(RETURNOR == "Yes", "Yes",
ifelse(ORGSPCSSI == "Organ/Space SSI", "Yes",
ifelse(PRSEPIS == "Yes", "Yes",
ifelse(REINTUB == "Unplanned Intubation", "Yes",
ifelse(URNINFEC == "Urinary Tract Infection", "Yes",
ifelse(SUPINFEC == "Superficial Incisional SSI", "Yes",
ifelse(FAILWEAN == "On Ventilator greater than 48 Hours", "Yes",
ifelse(CNSCVA == "Stroke/CVA", "Yes",
ifelse(DEHIS == "Wound Disruption", "Yes", "No")))))))))))))))))
print(NSQIPShortTermOutcomes$OUPNEUMO)
#### Subsetting cleaned data from one dataframe to a new dataframe
IntentiontotreatFinal <-
MISITTDemoTable1 %>%
select(PAN_APPROACH, Age, SEX, BMI, RACE_NEW, ASACLAS, DOpertoD, Fistula.Grade, OPTIME, TOTHLOS, CDARREST, CDMI, NRENAINSF, OPRENAFL, OTHDVT, OUPNEUMO, PULEMBOL, WNDINFD, URNINFEC, DEHIS, STILLINHOSP, REOPERATION1, RETURNOR, REINTUB, ORGSPCSSI, OTHSYSEP, PRSEPIS, FAILWEAN, CNSCVA, SeriousComplication, AnyComplication)
## Changing any Unknowns/none assigned to NA
IntentiontotreatFinal[IntentiontotreatFinal =="None assigned"] <- NA
IntentiontotreatFinal[IntentiontotreatFinal =="Unknown"] <- NA
#Final Step to create demographic table
IntentiontotreatFinal %>%
tbl_summary(
by = PAN_APPROACH,
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") ~ "**NSQIP Short Term Outcomes**") %>%
bold_labels()
PreopXRT Subsetted group Univariant & Multivariant Survival Analysis
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
PreopNeoPaper <- read.csv ("PreoppaperFinal.csv", header = TRUE, sep = "," )
#### Subsetting cleaned data from one dataframe to a new dataframe
PreopNeoPaperDemotable <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
PreopXRTOddsratio <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
#Final Step to create demographic table
PreopNeoPaperDemotable %>%
tbl_summary(
by = Single.vs.Multi.Agent,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
bold_p() %>%
add_overall() %>%
modify_header(label ~ "**Variables**") %>%
modify_spanning_header(c("stat_0", "stat_1") ~ "**Neo Multiagent vs Preop XRT**") %>%
bold_labels()
### Recoding No High School degree from blanks to unknown
PreopNeoPaper$NO_HSD_QUAR_12[PreopNeoPaper$NO_HSD_QUAR_12 ==""] <- "Unknown"
##Recoding Data within TNM Clin T
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T =="c0"] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T == "cX"] <- "Unknown"
##Recoding Data within TNM Clin N
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N == "cX"] <- "Unknown"
##Recoding Data within TNM Path T
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T =="pIS"] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T == "pX"] <- "Unknown"
##Recoding Data within TNM Path N
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N =="pX"] <- "Unknown"
##Recoding Analytical Stages removing Stage IV patients
PreopNeoPaper$ANALYTIC_STAGE_GROUP[PreopNeoPaper$ANALYTIC_STAGE_GROUP == "AJCC Stage Group unknown"] <- "Unknown"
##Recoding income
PreopNeoPaper$MED_INC_QUAR_12[PreopNeoPaper$MED_INC_QUAR_12 == ""] <- "Unknown"
###Labeling Columns for MISvsMISConversionNCDBDemographicTable
var_label(PreopNeoPaperDemotable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(PreopNeoPaperDemotable$PUF_VITAL_STATUS.2) <- "Vital Status"
##View the data
print(PreopNeoPaper$Single.vs.Multi.Agent)
#Recode Preop XRT = 1 NeoAdjuvant multiagent= 0
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent == "Pre Op XRT" ] <- 1
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent =="PreOp Multiagent"] <- 0
###Recode preop XRT and Neoadjuvant column back to original
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 1 ] <- "Pre Op XRT"
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 0 ] <- "PreOp Multiagent"
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
Neoadjoddsratio <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, NeoMultiAgent = ifelse(Single.vs.Multi.Agent == 1, 2,
ifelse(Single.vs.Multi.Agent == 0 , 1, 100)))
## Neoadjoddsratio change 2 to become the nonevent
Neoadjoddsratio$NeoMultiAgent[Neoadjoddsratio$NeoMultiAgent == 2] <- 0
###Make Singlevsmultiagent column numeric
PreopNeoPaper$Single.vs.Multi.Agent <- as.numeric(PreopNeoPaper$Single.vs.Multi.Agent)
### Preopxrtoddsratio recoding age to a <75 and >75, and 51-75
PreopXRTOddsratioB <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, AgeB = ifelse(AGE > 75, ">75",
ifelse(AGE < 51 , "<51", "51-75")))
#### recoding Unknowns to NA PreopxrtoddsratioB
PreopXRTOddsratioB$INSURANCE_STATUS.2[PreopXRTOddsratioB$INSURANCE_STATUS.2 =="Unknown"] <- NA
PreopXRTOddsratioB$MED_INC_QUAR_12[PreopXRTOddsratioB$MED_INC_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$NO_HSD_QUAR_12[PreopXRTOddsratioB$NO_HSD_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$Population.density[PreopXRTOddsratioB$Population.density =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_T[PreopXRTOddsratioB$TNM_CLIN_T =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_N[PreopXRTOddsratioB$TNM_CLIN_N =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_PATH_N[PreopXRTOddsratioB$TNM_PATH_N =="Unknown"] <- NA
PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP[PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
PreopXRTOddsratioB$Margins[PreopXRTOddsratioB$Margins =="Unknown"] <- NA
PreopXRTOddsratioB$GRADE.2[PreopXRTOddsratioB$GRADE.2 =="Unknown"] <- NA
PreopXRTOddsratioB$Downstaging[PreopXRTOddsratioB$Downstaging =="Unknown"] <- NA
#### recoding Unknowns to NA Neoadjoddsratio
Neoadjoddsratio$INSURANCE_STATUS.2[Neoadjoddsratio$INSURANCE_STATUS.2 =="Unknown"] <- NA
Neoadjoddsratio$MED_INC_QUAR_12[Neoadjoddsratio$MED_INC_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$NO_HSD_QUAR_12[Neoadjoddsratio$NO_HSD_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$Population.density[Neoadjoddsratio$Population.density =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_T[Neoadjoddsratio$TNM_CLIN_T =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_N[Neoadjoddsratio$TNM_CLIN_N =="Unknown"] <- NA
Neoadjoddsratio$TNM_PATH_N[Neoadjoddsratio$TNM_PATH_N =="Unknown"] <- NA
Neoadjoddsratio$ANALYTIC_STAGE_GROUP[Neoadjoddsratio$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
Neoadjoddsratio$Margins[Neoadjoddsratio$Margins =="Unknown"] <- NA
Neoadjoddsratio$GRADE.2[Neoadjoddsratio$GRADE.2 =="Unknown"] <- NA
Neoadjoddsratio$Downstaging[Neoadjoddsratio$Downstaging =="Unknown"] <- NA
##Univariant Model PreopxrtdOddsratio
UnivariantModel <- PreopXRTOddsratioB %>%
select(Single.vs.Multi.Agent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = Single.vs.Multi.Agent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Univariant Model Neomultiagent
UnivariantModel <- Neoadjoddsratio %>%
select(NeoMultiAgent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = NeoMultiAgent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Multivariant analysis preopxrt
MVOR <-
glm(Single.vs.Multi.Agent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = PreopXRTOddsratioB,
family = binomial("logit"),
na.action =na.omit
)
###mutlivariant neomultiageent
MVOR <-
glm(NeoMultiAgent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = Neoadjoddsratio,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
#####Survival Analysis Ensure that vital status is labeled as 1= Alive and 2=Death
Neoadjoddsratio$PUF_VITAL_STATUS.2[Neoadjoddsratio$PUF_VITAL_STATUS.2 == 0] <- 2
PreopXRTOddsratioB$PUF_VITAL_STATUS.2[PreopXRTOddsratioB$PUF_VITAL_STATUS.2 == 0] <- 2
###Subset the data so it's Only neoadj patients & only preop xrt patients prior to survival analysis
NeoadjSurvivalSubset <-
subset(Neoadjoddsratio, NeoMultiAgent == 1)
PreopXRTSurvivalSubset <-
subset(PreopXRTOddsratioB, Single.vs.Multi.Agent == 1)
### Univariant Survival Neoadj
UVSurvNeo <-
NeoadjSurvivalSubset %>%
select(AgeB, SEX, MED_INC_QUAR_12, Charlson.Deyo.Score, ANALYTIC_STAGE_GROUP, RX_SUMM_SURG_PRIM_SITE.2.2, GRADE.2, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) %>%
tbl_uvregression(
method = coxph,
y = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2),
exponentiate = TRUE) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
###Multivariant survival Neoadj
MVSurvNeo <-
coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) ~ AgeB + MED_INC_QUAR_12 + ANALYTIC_STAGE_GROUP + GRADE.2 + Downstaging,
data = NeoadjSurvivalSubset
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurvNeo, MVSurvNeo),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
### Univariant Survival preop
UVSurvPreopXRT <-
PreopXRTSurvivalSubset %>%
select(AgeB, SEX, MED_INC_QUAR_12, Charlson.Deyo.Score, ANALYTIC_STAGE_GROUP, RX_SUMM_SURG_PRIM_SITE.2.2, GRADE.2, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) %>%
tbl_uvregression(
method = coxph,
y = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2),
exponentiate = TRUE) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
###Multivariant survival Preop
MVSurvPreopXRT <-
coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) ~ AgeB + SEX + MED_INC_QUAR_12 + ANALYTIC_STAGE_GROUP + GRADE.2 + Downstaging,
data = PreopXRTSurvivalSubset
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurvPreopXRT, MVSurvPreopXRT),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Neoadj Subsetted group Univariant & Multivariant Survival Analysis
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
PreopNeoPaper <- read.csv ("PreoppaperFinal.csv", header = TRUE, sep = "," )
#### Subsetting cleaned data from one dataframe to a new dataframe
PreopNeoPaperDemotable <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
PreopXRTOddsratio <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
#Final Step to create demographic table
PreopNeoPaperDemotable %>%
tbl_summary(
by = Single.vs.Multi.Agent,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
bold_p() %>%
add_overall() %>%
modify_header(label ~ "**Variables**") %>%
modify_spanning_header(c("stat_0", "stat_1") ~ "**Neo Multiagent vs Preop XRT**") %>%
bold_labels()
### Recoding No High School degree from blanks to unknown
PreopNeoPaper$NO_HSD_QUAR_12[PreopNeoPaper$NO_HSD_QUAR_12 ==""] <- "Unknown"
##Recoding Data within TNM Clin T
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T =="c0"] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T == "cX"] <- "Unknown"
##Recoding Data within TNM Clin N
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N == "cX"] <- "Unknown"
##Recoding Data within TNM Path T
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T =="pIS"] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T == "pX"] <- "Unknown"
##Recoding Data within TNM Path N
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N =="pX"] <- "Unknown"
##Recoding Analytical Stages removing Stage IV patients
PreopNeoPaper$ANALYTIC_STAGE_GROUP[PreopNeoPaper$ANALYTIC_STAGE_GROUP == "AJCC Stage Group unknown"] <- "Unknown"
##Recoding income
PreopNeoPaper$MED_INC_QUAR_12[PreopNeoPaper$MED_INC_QUAR_12 == ""] <- "Unknown"
###Labeling Columns for MISvsMISConversionNCDBDemographicTable
var_label(PreopNeoPaperDemotable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(PreopNeoPaperDemotable$PUF_VITAL_STATUS.2) <- "Vital Status"
##View the data
print(PreopNeoPaper$Single.vs.Multi.Agent)
#Recode Preop XRT = 1 NeoAdjuvant multiagent= 0
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent == "Pre Op XRT" ] <- 1
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent =="PreOp Multiagent"] <- 0
###Recode preop XRT and Neoadjuvant column back to original
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 1 ] <- "Pre Op XRT"
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 0 ] <- "PreOp Multiagent"
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
Neoadjoddsratio <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, NeoMultiAgent = ifelse(Single.vs.Multi.Agent == 1, 2,
ifelse(Single.vs.Multi.Agent == 0 , 1, 100)))
## Neoadjoddsratio change 2 to become the nonevent
Neoadjoddsratio$NeoMultiAgent[Neoadjoddsratio$NeoMultiAgent == 2] <- 0
###Make Singlevsmultiagent column numeric
PreopNeoPaper$Single.vs.Multi.Agent <- as.numeric(PreopNeoPaper$Single.vs.Multi.Agent)
### Preopxrtoddsratio recoding age to a <75 and >75, and 51-75
PreopXRTOddsratioB <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, AgeB = ifelse(AGE > 75, ">75",
ifelse(AGE < 51 , "<51", "51-75")))
#### recoding Unknowns to NA PreopxrtoddsratioB
PreopXRTOddsratioB$INSURANCE_STATUS.2[PreopXRTOddsratioB$INSURANCE_STATUS.2 =="Unknown"] <- NA
PreopXRTOddsratioB$MED_INC_QUAR_12[PreopXRTOddsratioB$MED_INC_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$NO_HSD_QUAR_12[PreopXRTOddsratioB$NO_HSD_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$Population.density[PreopXRTOddsratioB$Population.density =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_T[PreopXRTOddsratioB$TNM_CLIN_T =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_N[PreopXRTOddsratioB$TNM_CLIN_N =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_PATH_N[PreopXRTOddsratioB$TNM_PATH_N =="Unknown"] <- NA
PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP[PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
PreopXRTOddsratioB$Margins[PreopXRTOddsratioB$Margins =="Unknown"] <- NA
PreopXRTOddsratioB$GRADE.2[PreopXRTOddsratioB$GRADE.2 =="Unknown"] <- NA
PreopXRTOddsratioB$Downstaging[PreopXRTOddsratioB$Downstaging =="Unknown"] <- NA
#### recoding Unknowns to NA Neoadjoddsratio
Neoadjoddsratio$INSURANCE_STATUS.2[Neoadjoddsratio$INSURANCE_STATUS.2 =="Unknown"] <- NA
Neoadjoddsratio$MED_INC_QUAR_12[Neoadjoddsratio$MED_INC_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$NO_HSD_QUAR_12[Neoadjoddsratio$NO_HSD_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$Population.density[Neoadjoddsratio$Population.density =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_T[Neoadjoddsratio$TNM_CLIN_T =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_N[Neoadjoddsratio$TNM_CLIN_N =="Unknown"] <- NA
Neoadjoddsratio$TNM_PATH_N[Neoadjoddsratio$TNM_PATH_N =="Unknown"] <- NA
Neoadjoddsratio$ANALYTIC_STAGE_GROUP[Neoadjoddsratio$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
Neoadjoddsratio$Margins[Neoadjoddsratio$Margins =="Unknown"] <- NA
Neoadjoddsratio$GRADE.2[Neoadjoddsratio$GRADE.2 =="Unknown"] <- NA
Neoadjoddsratio$Downstaging[Neoadjoddsratio$Downstaging =="Unknown"] <- NA
##Univariant Model PreopxrtdOddsratio
UnivariantModel <- PreopXRTOddsratioB %>%
select(Single.vs.Multi.Agent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = Single.vs.Multi.Agent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Univariant Model Neomultiagent
UnivariantModel <- Neoadjoddsratio %>%
select(NeoMultiAgent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = NeoMultiAgent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Multivariant analysis preopxrt
MVOR <-
glm(Single.vs.Multi.Agent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = PreopXRTOddsratioB,
family = binomial("logit"),
na.action =na.omit
)
###mutlivariant neomultiageent
MVOR <-
glm(NeoMultiAgent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = Neoadjoddsratio,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
#####Survival Analysis Ensure that vital status is labeled as 1= Alive and 2=Death
Neoadjoddsratio$PUF_VITAL_STATUS.2[Neoadjoddsratio$PUF_VITAL_STATUS.2 == 0] <- 2
PreopXRTOddsratioB$PUF_VITAL_STATUS.2[PreopXRTOddsratioB$PUF_VITAL_STATUS.2 == 0] <- 2
###Subset the data so it's Only neoadj patients & only preop xrt patients prior to survival analysis
NeoadjSurvivalSubset <-
subset(Neoadjoddsratio, NeoMultiAgent == 1)
PreopXRTSurvivalSubset <-
subset(PreopXRTOddsratioB, Single.vs.Multi.Agent == 1)
### Univariant Survival Neoadj
UVSurvNeo <-
NeoadjSurvivalSubset %>%
select(AgeB, SEX, MED_INC_QUAR_12, Charlson.Deyo.Score, ANALYTIC_STAGE_GROUP, RX_SUMM_SURG_PRIM_SITE.2.2, GRADE.2, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) %>%
tbl_uvregression(
method = coxph,
y = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2),
exponentiate = TRUE) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
###Multivariant survival Neoadj
MVSurvNeo <-
coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) ~ AgeB + MED_INC_QUAR_12 + ANALYTIC_STAGE_GROUP + GRADE.2 + Downstaging,
data = NeoadjSurvivalSubset
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
###Merged Neo Univariant and Multivariant
tbl_merge(
list(UVSurvNeo, MVSurvNeo),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Neoadj odds ratio
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
PreopNeoPaper <- read.csv ("PreoppaperFinal.csv", header = TRUE, sep = "," )
#### Subsetting cleaned data from one dataframe to a new dataframe
PreopNeoPaperDemotable <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
PreopXRTOddsratio <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
#Final Step to create demographic table
PreopNeoPaperDemotable %>%
tbl_summary(
by = Single.vs.Multi.Agent,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
bold_p() %>%
add_overall() %>%
modify_header(label ~ "**Variables**") %>%
modify_spanning_header(c("stat_0", "stat_1") ~ "**Neo Multiagent vs Preop XRT**") %>%
bold_labels()
### Recoding No High School degree from blanks to unknown
PreopNeoPaper$NO_HSD_QUAR_12[PreopNeoPaper$NO_HSD_QUAR_12 ==""] <- "Unknown"
##Recoding Data within TNM Clin T
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T =="c0"] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T == "cX"] <- "Unknown"
##Recoding Data within TNM Clin N
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N == "cX"] <- "Unknown"
##Recoding Data within TNM Path T
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T =="pIS"] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T == "pX"] <- "Unknown"
##Recoding Data within TNM Path N
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N =="pX"] <- "Unknown"
##Recoding Analytical Stages removing Stage IV patients
PreopNeoPaper$ANALYTIC_STAGE_GROUP[PreopNeoPaper$ANALYTIC_STAGE_GROUP == "AJCC Stage Group unknown"] <- "Unknown"
##Recoding income
PreopNeoPaper$MED_INC_QUAR_12[PreopNeoPaper$MED_INC_QUAR_12 == ""] <- "Unknown"
###Labeling Columns for MISvsMISConversionNCDBDemographicTable
var_label(PreopNeoPaperDemotable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(PreopNeoPaperDemotable$PUF_VITAL_STATUS.2) <- "Vital Status"
##View the data
print(PreopNeoPaper$Single.vs.Multi.Agent)
#Recode Preop XRT = 1 NeoAdjuvant multiagent= 0
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent == "Pre Op XRT" ] <- 1
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent =="PreOp Multiagent"] <- 0
###Recode preop XRT and Neoadjuvant column back to original
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 1 ] <- "Pre Op XRT"
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 0 ] <- "PreOp Multiagent"
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
Neoadjoddsratio <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, NeoMultiAgent = ifelse(Single.vs.Multi.Agent == 1, 2,
ifelse(Single.vs.Multi.Agent == 0 , 1, 100)))
## Neoadjoddsratio change 2 to become the nonevent
Neoadjoddsratio$NeoMultiAgent[Neoadjoddsratio$NeoMultiAgent == 2] <- 0
###Make Singlevsmultiagent column numeric
PreopNeoPaper$Single.vs.Multi.Agent <- as.numeric(PreopNeoPaper$Single.vs.Multi.Agent)
### Preopxrtoddsratio recoding age to a <75 and >75, and 51-75
PreopXRTOddsratioB <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, AgeB = ifelse(AGE > 75, ">75",
ifelse(AGE < 51 , "<51", "51-75")))
#### recoding Unknowns to NA PreopxrtoddsratioB
PreopXRTOddsratioB$INSURANCE_STATUS.2[PreopXRTOddsratioB$INSURANCE_STATUS.2 =="Unknown"] <- NA
PreopXRTOddsratioB$MED_INC_QUAR_12[PreopXRTOddsratioB$MED_INC_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$NO_HSD_QUAR_12[PreopXRTOddsratioB$NO_HSD_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$Population.density[PreopXRTOddsratioB$Population.density =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_T[PreopXRTOddsratioB$TNM_CLIN_T =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_N[PreopXRTOddsratioB$TNM_CLIN_N =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_PATH_N[PreopXRTOddsratioB$TNM_PATH_N =="Unknown"] <- NA
PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP[PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
PreopXRTOddsratioB$Margins[PreopXRTOddsratioB$Margins =="Unknown"] <- NA
PreopXRTOddsratioB$GRADE.2[PreopXRTOddsratioB$GRADE.2 =="Unknown"] <- NA
PreopXRTOddsratioB$Downstaging[PreopXRTOddsratioB$Downstaging =="Unknown"] <- NA
#### recoding Unknowns to NA Neoadjoddsratio
Neoadjoddsratio$INSURANCE_STATUS.2[Neoadjoddsratio$INSURANCE_STATUS.2 =="Unknown"] <- NA
Neoadjoddsratio$MED_INC_QUAR_12[Neoadjoddsratio$MED_INC_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$NO_HSD_QUAR_12[Neoadjoddsratio$NO_HSD_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$Population.density[Neoadjoddsratio$Population.density =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_T[Neoadjoddsratio$TNM_CLIN_T =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_N[Neoadjoddsratio$TNM_CLIN_N =="Unknown"] <- NA
Neoadjoddsratio$TNM_PATH_N[Neoadjoddsratio$TNM_PATH_N =="Unknown"] <- NA
Neoadjoddsratio$ANALYTIC_STAGE_GROUP[Neoadjoddsratio$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
Neoadjoddsratio$Margins[Neoadjoddsratio$Margins =="Unknown"] <- NA
Neoadjoddsratio$GRADE.2[Neoadjoddsratio$GRADE.2 =="Unknown"] <- NA
Neoadjoddsratio$Downstaging[Neoadjoddsratio$Downstaging =="Unknown"] <- NA
##Univariant Model PreopxrtdOddsratio
UnivariantModel <- PreopXRTOddsratioB %>%
select(Single.vs.Multi.Agent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = Single.vs.Multi.Agent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Univariant Model Neomultiagent
UnivariantModel <- Neoadjoddsratio %>%
select(NeoMultiAgent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = NeoMultiAgent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Multivariant analysis preopxrt
MVOR <-
glm(Single.vs.Multi.Agent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = PreopXRTOddsratioB,
family = binomial("logit"),
na.action =na.omit
)
###mutlivariant neomultiageent
MVOR <-
glm(NeoMultiAgent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = Neoadjoddsratio,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
PreopXRT OddsRatio
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
PreopNeoPaper <- read.csv ("PreoppaperFinal.csv", header = TRUE, sep = "," )
#### Subsetting cleaned data from one dataframe to a new dataframe
PreopNeoPaperDemotable <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
PreopXRTOddsratio <-
PreopNeoPaper %>%
select(Single.vs.Multi.Agent, AGE, SEX, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Margins, Downstaging, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2)
#Final Step to create demographic table
PreopNeoPaperDemotable %>%
tbl_summary(
by = Single.vs.Multi.Agent,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
bold_p() %>%
add_overall() %>%
modify_header(label ~ "**Variables**") %>%
modify_spanning_header(c("stat_0", "stat_1") ~ "**Neo Multiagent vs Preop XRT**") %>%
bold_labels()
### Recoding No High School degree from blanks to unknown
PreopNeoPaper$NO_HSD_QUAR_12[PreopNeoPaper$NO_HSD_QUAR_12 ==""] <- "Unknown"
##Recoding Data within TNM Clin T
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T =="c0"] <- "Unknown"
PreopNeoPaper$TNM_CLIN_T[PreopNeoPaper$TNM_CLIN_T == "cX"] <- "Unknown"
##Recoding Data within TNM Clin N
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N ==""] <- "Unknown"
PreopNeoPaper$TNM_CLIN_N[PreopNeoPaper$TNM_CLIN_N == "cX"] <- "Unknown"
##Recoding Data within TNM Path T
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T =="pIS"] <- "Unknown"
PreopNeoPaper$TNM_PATH_T[PreopNeoPaper$TNM_PATH_T == "pX"] <- "Unknown"
##Recoding Data within TNM Path N
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N ==""] <- "Unknown"
PreopNeoPaper$TNM_PATH_N[PreopNeoPaper$TNM_PATH_N =="pX"] <- "Unknown"
##Recoding Analytical Stages removing Stage IV patients
PreopNeoPaper$ANALYTIC_STAGE_GROUP[PreopNeoPaper$ANALYTIC_STAGE_GROUP == "AJCC Stage Group unknown"] <- "Unknown"
##Recoding income
PreopNeoPaper$MED_INC_QUAR_12[PreopNeoPaper$MED_INC_QUAR_12 == ""] <- "Unknown"
###Labeling Columns for MISvsMISConversionNCDBDemographicTable
var_label(PreopNeoPaperDemotable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(PreopNeoPaperDemotable$PUF_VITAL_STATUS.2) <- "Vital Status"
##View the data
print(PreopNeoPaper$Single.vs.Multi.Agent)
#Recode Preop XRT = 1 NeoAdjuvant multiagent= 0
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent == "Pre Op XRT" ] <- 1
PreopNeoPaper$Single.vs.Multi.Agent[PreopNeoPaper$Single.vs.Multi.Agent =="PreOp Multiagent"] <- 0
###Recode preop XRT and Neoadjuvant column back to original
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 1 ] <- "Pre Op XRT"
PreopXRTOddsratio$Single.vs.Multi.Agent[PreopXRTOddsratio$Single.vs.Multi.Agent == 0 ] <- "PreOp Multiagent"
###Create New columns for preopxrtoddsratio and neoadjuvant multiagent
Neoadjoddsratio <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, NeoMultiAgent = ifelse(Single.vs.Multi.Agent == 1, 2,
ifelse(Single.vs.Multi.Agent == 0 , 1, 100)))
## Neoadjoddsratio change 2 to become the nonevent
Neoadjoddsratio$NeoMultiAgent[Neoadjoddsratio$NeoMultiAgent == 2] <- 0
###Make Singlevsmultiagent column numeric
PreopNeoPaper$Single.vs.Multi.Agent <- as.numeric(PreopNeoPaper$Single.vs.Multi.Agent)
### Preopxrtoddsratio recoding age to a <75 and >75, and 51-75
PreopXRTOddsratioB <-
PreopXRTOddsratio %>%
mutate(PreopXRTOddsratio, AgeB = ifelse(AGE > 75, ">75",
ifelse(AGE < 51 , "<51", "51-75")))
#### recoding Unknowns to NA PreopxrtoddsratioB
PreopXRTOddsratioB$INSURANCE_STATUS.2[PreopXRTOddsratioB$INSURANCE_STATUS.2 =="Unknown"] <- NA
PreopXRTOddsratioB$MED_INC_QUAR_12[PreopXRTOddsratioB$MED_INC_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$NO_HSD_QUAR_12[PreopXRTOddsratioB$NO_HSD_QUAR_12 =="Unknown"] <- NA
PreopXRTOddsratioB$Population.density[PreopXRTOddsratioB$Population.density =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_T[PreopXRTOddsratioB$TNM_CLIN_T =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_CLIN_N[PreopXRTOddsratioB$TNM_CLIN_N =="Unknown"] <- NA
PreopXRTOddsratioB$TNM_PATH_N[PreopXRTOddsratioB$TNM_PATH_N =="Unknown"] <- NA
PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP[PreopXRTOddsratioB$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
PreopXRTOddsratioB$Margins[PreopXRTOddsratioB$Margins =="Unknown"] <- NA
PreopXRTOddsratioB$GRADE.2[PreopXRTOddsratioB$GRADE.2 =="Unknown"] <- NA
PreopXRTOddsratioB$Downstaging[PreopXRTOddsratioB$Downstaging =="Unknown"] <- NA
#### recoding Unknowns to NA Neoadjoddsratio
Neoadjoddsratio$INSURANCE_STATUS.2[Neoadjoddsratio$INSURANCE_STATUS.2 =="Unknown"] <- NA
Neoadjoddsratio$MED_INC_QUAR_12[Neoadjoddsratio$MED_INC_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$NO_HSD_QUAR_12[Neoadjoddsratio$NO_HSD_QUAR_12 =="Unknown"] <- NA
Neoadjoddsratio$Population.density[Neoadjoddsratio$Population.density =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_T[Neoadjoddsratio$TNM_CLIN_T =="Unknown"] <- NA
Neoadjoddsratio$TNM_CLIN_N[Neoadjoddsratio$TNM_CLIN_N =="Unknown"] <- NA
Neoadjoddsratio$TNM_PATH_N[Neoadjoddsratio$TNM_PATH_N =="Unknown"] <- NA
Neoadjoddsratio$ANALYTIC_STAGE_GROUP[Neoadjoddsratio$ANALYTIC_STAGE_GROUP =="Unknown"] <- NA
Neoadjoddsratio$Margins[Neoadjoddsratio$Margins =="Unknown"] <- NA
Neoadjoddsratio$GRADE.2[Neoadjoddsratio$GRADE.2 =="Unknown"] <- NA
Neoadjoddsratio$Downstaging[Neoadjoddsratio$Downstaging =="Unknown"] <- NA
##Univariant Model PreopxrtdOddsratio
UnivariantModel <- PreopXRTOddsratioB %>%
select(Single.vs.Multi.Agent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = Single.vs.Multi.Agent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Univariant Model Neomultiagent
UnivariantModel <- Neoadjoddsratio %>%
select(NeoMultiAgent, AgeB, RACE.2, INSURANCE_STATUS.2, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.density, Charlson.Deyo.Score, TNM_CLIN_T, TNM_CLIN_N, TNM_PATH_T, TNM_PATH_N, ANALYTIC_STAGE_GROUP, Margins, GRADE.2, RX_SUMM_SURG_PRIM_SITE.2.2, Downstaging) %>%
tbl_uvregression(
method = glm,
y = NeoMultiAgent,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
####Multivariant analysis preopxrt
MVOR <-
glm(Single.vs.Multi.Agent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = PreopXRTOddsratioB,
family = binomial("logit"),
na.action =na.omit
)
###mutlivariant neomultiageent
MVOR <-
glm(NeoMultiAgent ~ AgeB + RACE.2 + INSURANCE_STATUS.2 + MED_INC_QUAR_12 + NO_HSD_QUAR_12 + Population.density + Charlson.Deyo.Score + TNM_CLIN_T + TNM_PATH_T + TNM_PATH_N + ANALYTIC_STAGE_GROUP + Margins + Downstaging,
data = Neoadjoddsratio,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
MIS vs Open Long Term Outcomes Demographic Table Best Version
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NCDBOriginalData <- read.csv ("mohamed_ncdb.csv", header = TRUE, sep = "," )
### Viewing the variables in each column
print(NCDBOriginalData$RX_SUMM_SURG_PRIM_SITE.2.2)
print(NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010)
print(NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP)
print(NCDBDistalPancreatectomy$GRADE)
## Subsetting distal pancreatectomies
NCDBDistalPancreatectomy <-
subset(NCDBOriginalData, RX_SUMM_SURG_PRIM_SITE.2.2 == "Partial pancreatectomy, distal")
### Recoding MIS vs MIS converted to open
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Open or approach unspecified"] <- "Open"
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Laparoscopic"] <- "MIS"
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Laparoscopic converted to open"] <- "MIS Converted to open"
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Robotic assisted"] <- "MIS"
##Recoding Data within Columns Facility Location
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Middle Atlantic"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Mountain"] <- "West"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="South Atlantic"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Pacific"] <- "West"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD ==""] <- NA
print(NCDBDistalPancreatectomy$FACILITY_LOCATION_CD)
###Recoding Data within income
NCDBDistalPancreatectomy$MED_INC_QUAR_12[NCDBDistalPancreatectomy$MED_INC_QUAR_12 ==""] <- NA
###recoding data within no_hsd_quar_12
NCDBDistalPancreatectomy$NO_HSD_QUAR_12[NCDBDistalPancreatectomy$NO_HSD_QUAR_12 ==""] <- NA
##Recoding Data within Columns Population Density
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 2,500 to 19,999, adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 250,000 to 1 million population"] <- "Metro"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 1 million population or more"] <- "Metro"
NCDBDemographicTable$UR_CD_13[NCDBDemographicTable$UR_CD_13 =="Completely rural or less than 2,500 urban population, not adjacent to a metro area"] <- "Rural"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of fewer than 250,000 population"] <- "Metro"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 2,500 to 19,999, not adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Completely rural or less than 2,500 urban population, adjacent to a metro area"] <- "Rural"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 20,000 or more not adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Completely rural or less than 2,500 urban population, not adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 ==""] <- NA
## recoding data within columns vital status
NCDBDistalPancreatectomy$PUF_VITAL_STATUS[NCDBDistalPancreatectomy$PUF_VITAL_STATUS ==""] <- NA
##Recoding Analytical Stages removing Stage IV patients
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "Stage IV"] <- NA
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "AJCC Stage Group unknown"] <- "Unknown"
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "AJCC Staging not applicable"] <- "Unknown"
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "Unknown"] <- NA
### Recoding data in Tumor Grade Column
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Cell type not determined, not stated or not applicable, unknown primaries, high grade dysplasia"] <- "Unknown"
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Undifferentiated, anaplastic"] <- "Undifferentiated"
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Moderately differentiated, moderately well differentiated, intermediate differentiation"] <- "Moderately differentiated"
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Well differentiated, differentiated, NOS"] <- "Well differentiated"
###recode the surgical approach and make MIS converted to Open the same as MIS just before subsetting MIS and Open into new dataframe
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="MIS Converted to open"] <- "MIS"
###Subsetting MIS vs Conversion to MIS vs Open into one Dataframe
ITTMISvsOpenNCDB <-
subset(NCDBDistalPancreatectomy, RX_HOSP_SURG_APPR_2010 == "MIS" | RX_HOSP_SURG_APPR_2010 == "Mis Converted to open" | RX_HOSP_SURG_APPR_2010 == "Open")
##Subsetting MIS vs Conversion to MIS
MISvsConversionNCDB <-
subset(NCDBDistalPancreatectomy, RX_HOSP_SURG_APPR_2010 == "MIS" | RX_HOSP_SURG_APPR_2010 == "MIS Converted to open")
#### Subsetting cleaned data from one dataframe to a new dataframe
MISvsMISConversionNCDBDemographicTable <-
MISvsConversionNCDB %>%
select(RX_HOSP_SURG_APPR_2010, AGE, SEX, RACE.2, INSURANCE_STATUS.2, FACILITY_LOCATION_CD, MED_INC_QUAR_12, NO_HSD_QUAR_12, UR_CD_13, CDCC_TOTAL_BEST, ANALYTIC_STAGE_GROUP, GRADE, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS)
MISvsConversionvsOpenNCDBDemoTable <-
ITTMISvsOpenNCDB %>%
select(RX_HOSP_SURG_APPR_2010, AGE, SEX, RACE.2, INSURANCE_STATUS.2, FACILITY_LOCATION_CD, MED_INC_QUAR_12, NO_HSD_QUAR_12, UR_CD_13, CDCC_TOTAL_BEST, ANALYTIC_STAGE_GROUP, GRADE, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS)
###Labeling Columns for MISvsCOnversionVsopenNCDBDemotable
var_label(MISvsConversionvsOpenNCDBDemoTable$AGE) <- "Age"
var_label(MISvsConversionvsOpenNCDBDemoTable$SEX) <- "Sex"
var_label(MISvsConversionvsOpenNCDBDemoTable$RACE.2) <- "Race"
var_label(MISvsConversionvsOpenNCDBDemoTable$SMOKE) <- "Smoker"
var_label(MISvsConversionvsOpenNCDBDemoTable$INSURANCE_STATUS.2) <- "Insurance Status"
var_label(MISvsConversionvsOpenNCDBDemoTable$FACILITY_LOCATION_CD) <- "Region"
var_label(MISvsConversionvsOpenNCDBDemoTable$MED_INC_QUAR_12) <- "Income"
var_label(MISvsConversionvsOpenNCDBDemoTable$NO_HSD_QUAR_12) <- "No High School Degree"
var_label(MISvsConversionvsOpenNCDBDemoTable$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(MISvsConversionvsOpenNCDBDemoTable$UR_CD_13) <- "Population"
var_label(MISvsConversionvsOpenNCDBDemoTable$RX_HOSP_SURG_APPR_2010) <- "Surgery"
var_label(MISvsConversionvsOpenNCDBDemoTable$ANALYTIC_STAGE_GROUP) <- "Staging"
var_label(MISvsConversionvsOpenNCDBDemoTable$GRADE) <- "Tumor Grade"
var_label(MISvsConversionvsOpenNCDBDemoTable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(MISvsConversionvsOpenNCDBDemoTable$PUF_VITAL_STATUS) <- "Vital Status"
###Labeling Columns for MISvsMISConversionNCDBDemographicTable
var_label(MISvsMISConversionNCDBDemographicTable$AGE) <- "Age"
var_label(MISvsMISConversionNCDBDemographicTable$SEX) <- "Sex"
var_label(MISvsMISConversionNCDBDemographicTable$RACE.2) <- "Race"
var_label(MISvsMISConversionNCDBDemographicTable$SMOKE) <- "Smoker"
var_label(MISvsMISConversionNCDBDemographicTable$INSURANCE_STATUS.2) <- "Insurance Status"
var_label(MISvsMISConversionNCDBDemographicTable$FACILITY_LOCATION_CD) <- "Region"
var_label(MISvsMISConversionNCDBDemographicTable$MED_INC_QUAR_12) <- "Income"
var_label(MISvsMISConversionNCDBDemographicTable$NO_HSD_QUAR_12) <- "No High School Degree"
var_label(MISvsMISConversionNCDBDemographicTable$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(MISvsMISConversionNCDBDemographicTable$UR_CD_13) <- "Population"
var_label(MISvsMISConversionNCDBDemographicTable$RX_HOSP_SURG_APPR_2010) <- "Surgery"
var_label(MISvsMISConversionNCDBDemographicTable$ANALYTIC_STAGE_GROUP) <- "Staging"
var_label(MISvsMISConversionNCDBDemographicTable$GRADE) <- "Tumor Grade"
var_label(MISvsMISConversionNCDBDemographicTable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(MISvsMISConversionNCDBDemographicTable$PUF_VITAL_STATUS) <- "Vital Status"
##As.factor misvsmisconversionncdbdemographictable
MISvsMISConversionNCDBDemographicTable <- as.factor(MISvsMISConversionNCDBDemographicTable)
#Final Step to create demographic table
MISvsConversionvsOpenNCDBDemoTable %>%
tbl_summary(
by = RX_HOSP_SURG_APPR_2010,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
bold_p() %>%
add_overall() %>%
modify_header(label ~ "**Variables**") %>%
modify_spanning_header(c("stat_0", "stat_1") ~ "**NCDB Long Term Outcomes**") %>%
bold_labels()
MIS vs MIS converted to open Demographic Table NCDB Long Term Outcomes
# Important packages to load in
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
###
Intention to Treat MIS vs Open
## Importing data in to Rstudio below
Importin csv
getwd()
NCDBOriginalData <- read.csv ("mohamed_ncdb.csv", header = TRUE, sep = "," )
### Viewing the variables in each column
print(NCDBOriginalData$RX_SUMM_SURG_PRIM_SITE.2.2)
print(NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010)
print(NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP)
print(NCDBDistalPancreatectomy$GRADE)
## Subsetting distal pancreatectomies
NCDBDistalPancreatectomy <-
subset(NCDBOriginalData, RX_SUMM_SURG_PRIM_SITE.2.2 == "Partial pancreatectomy, distal")
### Recoding MIS vs MIS converted to open
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Open or approach unspecified"] <- "Open"
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Laparoscopic"] <- "MIS"
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Laparoscopic converted to open"] <- "MIS Converted to open"
NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010[NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010 =="Robotic assisted"] <- "MIS"
##Recoding Data within Columns Facility Location
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Middle Atlantic"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Mountain"] <- "West"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="South Atlantic"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Pacific"] <- "West"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD ==""] <- NA
print(NCDBDistalPancreatectomy$FACILITY_LOCATION_CD)
###Recoding Data within income
NCDBDistalPancreatectomy$MED_INC_QUAR_12[NCDBDistalPancreatectomy$MED_INC_QUAR_12 ==""] <- NA
###recoding data within no_hsd_quar_12
NCDBDistalPancreatectomy$NO_HSD_QUAR_12[NCDBDistalPancreatectomy$NO_HSD_QUAR_12 ==""] <- NA
##Recoding Data within Columns Population Density
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 2,500 to 19,999, adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 250,000 to 1 million population"] <- "Metro"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 1 million population or more"] <- "Metro"
NCDBDemographicTable$UR_CD_13[NCDBDemographicTable$UR_CD_13 =="Completely rural or less than 2,500 urban population, not adjacent to a metro area"] <- "Rural"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of fewer than 250,000 population"] <- "Metro"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 2,500 to 19,999, not adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Completely rural or less than 2,500 urban population, adjacent to a metro area"] <- "Rural"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 20,000 or more not adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Completely rural or less than 2,500 urban population, not adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 ==""] <- NA
## recoding data within columns vital status
NCDBDistalPancreatectomy$PUF_VITAL_STATUS[NCDBDistalPancreatectomy$PUF_VITAL_STATUS ==""] <- NA
##Recoding Analytical Stages removing Stage IV patients
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "Stage IV"] <- NA
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "AJCC Stage Group unknown"] <- "Unknown"
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "AJCC Staging not applicable"] <- "Unknown"
NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP[NCDBDistalPancreatectomy$ANALYTIC_STAGE_GROUP == "Unknown"] <- NA
### Recoding data in Tumor Grade Column
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Cell type not determined, not stated or not applicable, unknown primaries, high grade dysplasia"] <- "Unknown"
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Undifferentiated, anaplastic"] <- "Undifferentiated"
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Moderately differentiated, moderately well differentiated, intermediate differentiation"] <- "Moderately differentiated"
NCDBDistalPancreatectomy$GRADE[NCDBDistalPancreatectomy$GRADE =="Well differentiated, differentiated, NOS"] <- "Well differentiated"
###Subsetting MIS vs Conversion to MIS vs Open into one Dataframe
MISvsConversionvsOpenNCDB <-
subset(NCDBDistalPancreatectomy, RX_HOSP_SURG_APPR_2010 == "MIS" | RX_HOSP_SURG_APPR_2010 == "Mis Converted to open" | RX_HOSP_SURG_APPR_2010 == "Open")
##Subsetting MIS vs Conversion to MIS
MISvsConversionNCDB <-
subset(NCDBDistalPancreatectomy, RX_HOSP_SURG_APPR_2010 == "MIS" | RX_HOSP_SURG_APPR_2010 == "MIS Converted to open")
#### Subsetting cleaned data from one dataframe to a new dataframe
MISvsMISConversionNCDBDemographicTable <-
MISvsConversionNCDB %>%
select(RX_HOSP_SURG_APPR_2010, AGE, SEX, RACE.2, INSURANCE_STATUS.2, FACILITY_LOCATION_CD, MED_INC_QUAR_12, NO_HSD_QUAR_12, UR_CD_13, CDCC_TOTAL_BEST, ANALYTIC_STAGE_GROUP, GRADE, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS)
MISvsConversionvsOpenNCDBDemoTable <-
MISvsConversionvsOpenNCDB %>%
select(RX_HOSP_SURG_APPR_2010, AGE, SEX, RACE.2, INSURANCE_STATUS.2, FACILITY_LOCATION_CD, MED_INC_QUAR_12, NO_HSD_QUAR_12, UR_CD_13, CDCC_TOTAL_BEST, ANALYTIC_STAGE_GROUP, GRADE, DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS)
###Labeling Columns for MISvsCOnversionVsopenNCDBDemotable
var_label(MISvsConversionvsOpenNCDBDemoTable$AGE) <- "Age"
var_label(MISvsConversionvsOpenNCDBDemoTable$SEX) <- "Sex"
var_label(MISvsConversionvsOpenNCDBDemoTable$RACE.2) <- "Race"
var_label(MISvsConversionvsOpenNCDBDemoTable$SMOKE) <- "Smoker"
var_label(MISvsConversionvsOpenNCDBDemoTable$INSURANCE_STATUS.2) <- "Insurance Status"
var_label(MISvsConversionvsOpenNCDBDemoTable$FACILITY_LOCATION_CD) <- "Region"
var_label(MISvsConversionvsOpenNCDBDemoTable$MED_INC_QUAR_12) <- "Income"
var_label(MISvsConversionvsOpenNCDBDemoTable$NO_HSD_QUAR_12) <- "No High School Degree"
var_label(MISvsConversionvsOpenNCDBDemoTable$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(MISvsConversionvsOpenNCDBDemoTable$UR_CD_13) <- "Population"
var_label(MISvsConversionvsOpenNCDBDemoTable$RX_HOSP_SURG_APPR_2010) <- "Surgery"
var_label(MISvsConversionvsOpenNCDBDemoTable$ANALYTIC_STAGE_GROUP) <- "Staging"
var_label(MISvsConversionvsOpenNCDBDemoTable$GRADE) <- "Tumor Grade"
var_label(MISvsConversionvsOpenNCDBDemoTable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(MISvsConversionvsOpenNCDBDemoTable$PUF_VITAL_STATUS) <- "Vital Status"
###Labeling Columns for MISvsMISConversionNCDBDemographicTable
var_label(MISvsMISConversionNCDBDemographicTable$AGE) <- "Age"
var_label(MISvsMISConversionNCDBDemographicTable$SEX) <- "Sex"
var_label(MISvsMISConversionNCDBDemographicTable$RACE.2) <- "Race"
var_label(MISvsMISConversionNCDBDemographicTable$SMOKE) <- "Smoker"
var_label(MISvsMISConversionNCDBDemographicTable$INSURANCE_STATUS.2) <- "Insurance Status"
var_label(MISvsMISConversionNCDBDemographicTable$FACILITY_LOCATION_CD) <- "Region"
var_label(MISvsMISConversionNCDBDemographicTable$MED_INC_QUAR_12) <- "Income"
var_label(MISvsMISConversionNCDBDemographicTable$NO_HSD_QUAR_12) <- "No High School Degree"
var_label(MISvsMISConversionNCDBDemographicTable$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(MISvsMISConversionNCDBDemographicTable$UR_CD_13) <- "Population"
var_label(MISvsMISConversionNCDBDemographicTable$RX_HOSP_SURG_APPR_2010) <- "Surgery"
var_label(MISvsMISConversionNCDBDemographicTable$ANALYTIC_STAGE_GROUP) <- "Staging"
var_label(MISvsMISConversionNCDBDemographicTable$GRADE) <- "Tumor Grade"
var_label(MISvsMISConversionNCDBDemographicTable$DX_LASTCONTACT_DEATH_MONTHS) <- "Median Survival"
var_label(MISvsMISConversionNCDBDemographicTable$PUF_VITAL_STATUS) <- "Vital Status"
##As.factor misvsmisconversionncdbdemographictable
MISvsMISConversionNCDBDemographicTable <- as.factor(MISvsMISConversionNCDBDemographicTable)
#Final Step to create demographic table
MISvsMISConversionNCDBDemographicTable %>%
tbl_summary(
by = RX_HOSP_SURG_APPR_2010,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2))%>%
bold_p() %>%
add_overall() %>%
modify_header(label ~ "**Variables**") %>%
modify_spanning_header(c("stat_0", "stat_1") ~ "**NCDB Long Term Outcomes**") %>%
bold_labels()
Covid Study Odds Ratio
UnivariantModel <-
CovidOddsRatio %>%
select(HospitalizedGreaterthan10, Diabetes.mellitus., COPD., Asthma.) %>%
tbl_uvregression(
method = glm,
y = HospitalizedGreaterthan10,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.05) %>%
bold_labels() %>%
italicize_levels()
var_label(CovidOddsRatio$Diabetes.mellitus.) <- "Diabetes Melitus"
var_label(CovidOddsRatio$COPD.) <- "COPD"
var_label(CovidOddsRatio$Asthma.) <- "Asthma"
CRPOPF vs amylase cutoff and day Demographic Table
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
DayPredictor <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
DayDemographic300 <-
WhippleDayDemographicTable %>%
select(Day, Age, SEX, RACE_NEW, BMI, Fistula.Grade, ASACLAS, PAN_DUCTSIZE, PAN_GLANDTEXT, AmylaseCutoff300DT, Amylasecutoff5000DT)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
DayDemographic300 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Clinically Relevant Postoperative Pancreatic Fistula**") %>%
bold_labels() %>%
show_header_names()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DemographicTableDay5000$Day[DemographicTableDay5000$Day == "NA"] <- NA
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(WhippleDemographicTable1$SEX) <- "Sex"
var_label(WhippleDemographicTable1$Fistula.Grade) <- "Fistula"
var_label(WhippleDemographicTable1$RACE_NEW) <- "Race"
var_label(WhippleDemographicTable1$ASACLAS) <- "ASA Classification"
var_label(DemographicTableDay$HYPERMED) <- "Hypertension"
var_label(DemographicTableDay$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, Day = ifelse(DAMYLASE %in% 3:5, "3-5",
ifelse(DAMYLASE %in% 1, "1",
ifelse(DAMYLASE %in% 0, NA, ">5"))))
WhippleDemographicTable2 <-
mutate(WhippleDemographicTable1, AmylaseCutoff300DT =
ifelse(peak_amylase > 300, ">300", "<300"))
WhippleDemographicTable <-
mutate(WhippleDemographicTable2, Amylasecutoff5000DT =
ifelse(peak_amylase > 5000, ">5000", "<5000"))
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, FistulaGradeBinary =
ifelse(Fistula.Grade =="No CR-POPF", 0,
ifelse(Fistula.Grade =="CR-POPF", 1, "NA")))
remove(WhippleDayDemographicTable1)
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230)) %>%
ggplot(aes(x = DAMYLASE, y = peak_amylase)) +
geom_point()
print(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSORDay <-
cbind(FRSOddsRatio1, Day = FRSOddsRatio2$Day)
print(FRSFUll$CPT)
sum(FRSFUll$CPT == 48150)
WhippleDemographicTable <-
subset(FRSFUll, CPT == "48150" | CPT == "48152")
WhippleDemographicTable <-
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230))
sum(WhippleDemographicTable1$peak_amylase ==1)
Oddsratio3
remove(WhippleDemographicTable2)
Odds Ratio CR-POPF By day with a patient group with >5000 Amylase Cutoff
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
DayPredictor <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
DemographicTableDay5000 <-
DemographicTableDay %>%
select(Day, Age, SEX, RACE_NEW, BMI, Fistula.Grade, ASACLAS, Amylasecutoff5000)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
DemographicTableDay5000 %>%
tbl_summary(
by = Amylasecutoff5000,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Amylase Cutoff 5,000**") %>%
bold_labels() %>%
show_header_names()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DemographicTableDay$Fistula.Grade[DemographicTableDay$Fistula.Grade == "No CR-POPF"] <- 0
OddsRatioDay300$RACE_NEW[OddsRatioDay300$RACE_NEW == "Unknown"] <- NA
OddsRatioDay300$ASACLAS[OddsRatioDay300$ASACLAS == "5-Moribund"] <- NA
OddsRatioDay300$ASACLAS[OddsRatioDay300$ASACLAS == "None assigned"] <- NA
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
OddsRatioDayPredictor <- DemographicTableDay[DemographicTableDay$Fistula.Grade=="Neoadjuvant Multiagent Chemotherapy",]
var_label(DemographicTableDay$SEX) <- "Sex"
var_label(DemographicTableDay$Fistula.Grade) <- "Fistula"
var_label(DemographicTableDay$RACE_NEW) <- "Race"
var_label(DemographicTableDay$ASACLAS) <- "ASA Classification"
var_label(DemographicTableDay$HYPERMED) <- "Hypertension"
var_label(DemographicTableDay$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
OddsRatioDay5000 %>%
select(FistulaGradeBinary, Day, Agec, SEX, RACE_NEW, BMIC, DuctSize, PAN_GLANDTEXT, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = FistulaGradeBinary,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(FistulaGradeBinary ~ Day + Agec + SEX + RACE_NEW + BMIC + ASACLAS,
data = OddsRatioDay5000,
family = binomial("logit"),
na.action =na.omit
)
OddsRatioDay300$ASACLAS <- as.factor(OddsRatioDay300$ASACLAS)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.05) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
DemographicTableDay$Fistula.Grade <- as.numeric(DemographicTableDay$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
WhippleDayDemographicTable <-
mutate(WhippleDemographicTable, Day = ifelse(DAMYLASE %in% 3:5, "3-5",
ifelse(DAMYLASE %in% 1, "1",
ifelse(DAMYLASE %in% 0, "NA", ">5"))))
WhippleDayDemographicTable1 <-
mutate(WhippleDayDemographicTable, AmylaseCutoff300 =
ifelse(peak_amylase > 300, ">300", "<300"))
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable1, Amylasecutoff5000 =
ifelse(peak_amylase > 5000, ">5000", "<5000"))
remove(WhippleDayDemographicTable1)
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230)) %>%
ggplot(aes(x = DAMYLASE, y = peak_amylase)) +
geom_point()
print(FRSOddsRatio1$Fistula.Grade)
OddsRatioDay300$FistulaGradeBinary <- as.numeric(OddsRatioDay300$FistulaGradeBinary)
FRSORDay <-
cbind(FRSOddsRatio1, Day = FRSOddsRatio2$Day)
print(FRSFUll$CPT)
sum(FRSFUll$CPT == 48150)
WhippleDemographicTable <-
subset(FRSFUll, CPT == "48150" | CPT == "48152")
WhippleDemographicTable <-
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230))
sum(WhippleDemographicTable1$peak_amylase ==1)
Oddsratio3
remove(FRSFull1)
OddsRatioDay5000 <- WhippleDayDemographicTable[WhippleDayDemographicTable$Amylasecutoff5000DT==">5000",]
OddsRatioDay5000$Day[OddsRatioDay5000$Day == ">5"] <- NA
var_label(OddsRatioDay5000$SEX) <- "Sex"
var_label(OddsRatioDay5000$Fistula.Grade) <- "Fistula"
var_label(OddsRatioDay5000$RACE_NEW) <- "Race"
var_label(OddsRatioDay5000$ASACLAS) <- "ASA Classification"
var_label(OddsRatioDay5000$PAN_DUCTSIZE) <- "Duct Size"
var_label(OddsRatioDay5000$PAN_GLANDTEXT) <- "Gland Texture"
OddsRatioDay5000$PAN_DUCTSIZE[OddsRatioDay5000$PAN_DUCTSIZE == "Unknown"] <- NA
OddsRatioDay5000$PAN_GLANDTEXT[OddsRatioDay5000$PAN_GLANDTEXT == "Unknown"] <- NA
OddsRatioDay5000$PAN_GLANDTEXT[OddsRatioDay5000$PAN_GLANDTEXT == "Intermediate"] <- NA
OddsRatioDay5000$ASACLAS[OddsRatioDay5000$ASACLAS == "None assigned"] <- NA
OddsRatioDay5000$ASACLAS[OddsRatioDay5000$ASACLAS == "5-Moribund"] <- NA
OddsRatioDay5000 <-
mutate(OddsRatioDay5000, Agec =
ifelse(Age > 60, ">60", "<60"))
OddsRatioDay5000 <-
mutate(OddsRatioDay5000, BMIC =
ifelse(BMI > 30, ">30", "<30"))
OddsRatioDay5000 <-
mutate(OddsRatioDay5000, DuctSize =
ifelse(PAN_DUCTSIZE == "<3 mm", "<3 mm",
ifelse(PAN_DUCTSIZE == "3-6 mm", ">3 mm",
ifelse(PAN_DUCTSIZE == ">6 mm", ">3 mm", NA))))
Odds Ratio CR-POPF By day with a patient group with >300 Amylase Cutoff
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
DayPredictor <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
DemographicTableDay5000 <-
DemographicTableDay %>%
select(Day, Age, SEX, RACE_NEW, BMI, Fistula.Grade, ASACLAS, Amylasecutoff5000)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
DemographicTableDay5000 %>%
tbl_summary(
by = Amylasecutoff5000,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Amylase Cutoff 5,000**") %>%
bold_labels() %>%
show_header_names()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DemographicTableDay$Fistula.Grade[DemographicTableDay$Fistula.Grade == "No CR-POPF"] <- 0
OddsRatioDay300$RACE_NEW[OddsRatioDay300$RACE_NEW == "Unknown"] <- NA
OddsRatioDay300$ASACLAS[OddsRatioDay300$ASACLAS == "5-Moribund"] <- NA
OddsRatioDay300$ASACLAS[OddsRatioDay300$ASACLAS == "None assigned"] <- NA
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
OddsRatioDayPredictor <- DemographicTableDay[DemographicTableDay$Fistula.Grade=="Neoadjuvant Multiagent Chemotherapy",]
var_label(DemographicTableDay$SEX) <- "Sex"
var_label(DemographicTableDay$Fistula.Grade) <- "Fistula"
var_label(DemographicTableDay$RACE_NEW) <- "Race"
var_label(DemographicTableDay$ASACLAS) <- "ASA Classification"
var_label(DemographicTableDay$HYPERMED) <- "Hypertension"
var_label(DemographicTableDay$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
OddsRatioDay300 %>%
select(FistulaGradeBinary, Day, Agec, SEX, RACE_NEW, BMIC, DuctSize, PAN_GLANDTEXT, ASACLAS) %>%
tbl_uvregression(
method = glm,
y = FistulaGradeBinary,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(FistulaGradeBinary ~ Day + Agec + SEX + RACE_NEW + BMIC + DuctSize + PAN_GLANDTEXT + ASACLAS,
data = OddsRatioDay300,
family = binomial("logit"),
na.action =na.omit
)
OddsRatioDay300$ASACLAS <- as.factor(OddsRatioDay300$ASACLAS)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.05) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
DemographicTableDay$Fistula.Grade <- as.numeric(DemographicTableDay$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
WhippleDayDemographicTable <-
mutate(WhippleDemographicTable, Day = ifelse(DAMYLASE %in% 3:5, "3-5",
ifelse(DAMYLASE %in% 1, "1",
ifelse(DAMYLASE %in% 0, "NA", ">5"))))
WhippleDayDemographicTable1 <-
mutate(WhippleDayDemographicTable, AmylaseCutoff300 =
ifelse(peak_amylase > 300, ">300", "<300"))
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable1, Amylasecutoff5000 =
ifelse(peak_amylase > 5000, ">5000", "<5000"))
remove(WhippleDayDemographicTable1)
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230)) %>%
ggplot(aes(x = DAMYLASE, y = peak_amylase)) +
geom_point()
print(FRSOddsRatio1$Fistula.Grade)
OddsRatioDay300$FistulaGradeBinary <- as.numeric(OddsRatioDay300$FistulaGradeBinary)
FRSORDay <-
cbind(FRSOddsRatio1, Day = FRSOddsRatio2$Day)
print(FRSFUll$CPT)
sum(FRSFUll$CPT == 48150)
WhippleDemographicTable <-
subset(FRSFUll, CPT == "48150" | CPT == "48152")
WhippleDemographicTable <-
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230))
sum(WhippleDemographicTable1$peak_amylase ==1)
Oddsratio3
remove(FRSFull1)
OddsRatioDay300 <- WhippleDayDemographicTable[WhippleDayDemographicTable$AmylaseCutoff300DT==">300",]
OddsRatioDay300$Day[OddsRatioDay300$Day == ">5"] <- NA
var_label(OddsRatioDay300$SEX) <- "Sex"
var_label(OddsRatioDay300$Fistula.Grade) <- "Fistula"
var_label(OddsRatioDay300$RACE_NEW) <- "Race"
var_label(OddsRatioDay300$ASACLAS) <- "ASA Classification"
var_label(OddsRatioDay300$PAN_DUCTSIZE) <- "Duct Size"
var_label(OddsRatioDay300$PAN_GLANDTEXT) <- "Gland Texture"
OddsRatioDay300$PAN_DUCTSIZE[OddsRatioDay300$PAN_DUCTSIZE == "Unknown"] <- NA
OddsRatioDay300$PAN_GLANDTEXT[OddsRatioDay300$PAN_GLANDTEXT == "Unknown"] <- NA
OddsRatioDay300$PAN_GLANDTEXT[OddsRatioDay300$PAN_GLANDTEXT == "Intermediate"] <- NA
OddsRatioDay300$ASACLAS[OddsRatioDay300$ASACLAS == "None assigned"] <- NA
OddsRatioDay300 <-
mutate(OddsRatioDay300, Agec =
ifelse(Age > 60, ">60", "<60"))
OddsRatioDay300 <-
mutate(OddsRatioDay300, BMIC =
ifelse(BMI > 30, ">30", "<30"))
OddsRatioDay300 <-
mutate(OddsRatioDay300, DuctSize =
ifelse(PAN_DUCTSIZE == "<3 mm", "<3 mm",
ifelse(PAN_DUCTSIZE == "3-6 mm", ">3 mm",
ifelse(PAN_DUCTSIZE == ">6 mm", ">3 mm", NA))))
OddsRatioDay300 <-
mutate(OddsRatioDay300, GlandText =
ifelse(PAN_GLANDTEXT == "<3 mm", "<3 mm",
ifelse(PAN_GLANDTEXT == "3-6 mm", ">3 mm",
ifelse(PAN_GLANDTEXT == ">6 mm", ">3 mm", NA))))
Amylase Cutoff 5,000 Demographic Table
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
DayPredictor <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
DayDemographic5000 <-
WhippleDayDemographicTable %>%
select(AmylaseCutoff300DT, Day, Age, SEX, RACE_NEW, BMI, Fistula.Grade, ASACLAS, PAN_DUCTSIZE, PAN_GLANDTEXT)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
DayDemographic5000 %>%
tbl_summary(
by = Amylasecutoff5000DT,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Amylase cutoff**") %>%
bold_labels() %>%
show_header_names()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DemographicTableDay5000$Day[DemographicTableDay5000$Day == "NA"] <- NA
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(WhippleDemographicTable1$SEX) <- "Sex"
var_label(WhippleDemographicTable1$Fistula.Grade) <- "Fistula"
var_label(WhippleDemographicTable1$RACE_NEW) <- "Race"
var_label(WhippleDemographicTable1$ASACLAS) <- "ASA Classification"
var_label(DemographicTableDay$HYPERMED) <- "Hypertension"
var_label(DemographicTableDay$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, Day = ifelse(DAMYLASE %in% 3:5, "3-5",
ifelse(DAMYLASE %in% 1, "1",
ifelse(DAMYLASE %in% 0, NA, ">5"))))
WhippleDemographicTable2 <-
mutate(WhippleDemographicTable1, AmylaseCutoff300DT =
ifelse(peak_amylase > 300, ">300", "<300"))
WhippleDemographicTable <-
mutate(WhippleDemographicTable2, Amylasecutoff5000DT =
ifelse(peak_amylase > 5000, ">5000", "<5000"))
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, FistulaGradeBinary =
ifelse(Fistula.Grade =="No CR-POPF", 0,
ifelse(Fistula.Grade =="CR-POPF", 1, "NA")))
remove(WhippleDayDemographicTable1)
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230)) %>%
ggplot(aes(x = DAMYLASE, y = peak_amylase)) +
geom_point()
print(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSORDay <-
cbind(FRSOddsRatio1, Day = FRSOddsRatio2$Day)
print(FRSFUll$CPT)
sum(FRSFUll$CPT == 48150)
WhippleDemographicTable <-
subset(FRSFUll, CPT == "48150" | CPT == "48152")
WhippleDemographicTable <-
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230))
sum(WhippleDemographicTable1$peak_amylase ==1)
Oddsratio3
remove(WhippleDemographicTable2)
Amylase Cutoff 300 Demographic Table
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
DayPredictor <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
DayDemographic5000 <-
WhippleDayDemographicTable %>%
select(AmylaseCutoff300DT, Day, Age, SEX, RACE_NEW, BMI, Fistula.Grade, ASACLAS, PAN_DUCTSIZE, PAN_GLANDTEXT)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
DayDemographic300 %>%
tbl_summary(
by = AmylaseCutoff300DT,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Amylase cutoff**") %>%
bold_labels() %>%
show_header_names()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DemographicTableDay5000$Day[DemographicTableDay5000$Day == "NA"] <- NA
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(WhippleDemographicTable1$SEX) <- "Sex"
var_label(WhippleDemographicTable1$Fistula.Grade) <- "Fistula"
var_label(WhippleDemographicTable1$RACE_NEW) <- "Race"
var_label(WhippleDemographicTable1$ASACLAS) <- "ASA Classification"
var_label(DemographicTableDay$HYPERMED) <- "Hypertension"
var_label(DemographicTableDay$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, Day = ifelse(DAMYLASE %in% 3:5, "3-5",
ifelse(DAMYLASE %in% 1, "1",
ifelse(DAMYLASE %in% 0, NA, ">5"))))
WhippleDemographicTable2 <-
mutate(WhippleDemographicTable1, AmylaseCutoff300DT =
ifelse(peak_amylase > 300, ">300", "<300"))
WhippleDemographicTable <-
mutate(WhippleDemographicTable2, Amylasecutoff5000DT =
ifelse(peak_amylase > 5000, ">5000", "<5000"))
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, FistulaGradeBinary =
ifelse(Fistula.Grade =="No CR-POPF", 0,
ifelse(Fistula.Grade =="CR-POPF", 1, "NA")))
remove(WhippleDayDemographicTable1)
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230)) %>%
ggplot(aes(x = DAMYLASE, y = peak_amylase)) +
geom_point()
print(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSORDay <-
cbind(FRSOddsRatio1, Day = FRSOddsRatio2$Day)
print(FRSFUll$CPT)
sum(FRSFUll$CPT == 48150)
WhippleDemographicTable <-
subset(FRSFUll, CPT == "48150" | CPT == "48152")
WhippleDemographicTable <-
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230))
sum(WhippleDemographicTable1$peak_amylase ==1)
Oddsratio3
remove(WhippleDemographicTable2)
Days Demographic Table Amylase cutoff 5000
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
DayPredictor <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
DayDemographic5000 <-
WhippleDayDemographicTable %>%
select(Day, Age, SEX, RACE_NEW, BMI, Fistula.Grade, ASACLAS, PAN_DUCTSIZE, PAN_GLANDTEXT, Amylasecutoff5000DT)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
DayDemographic5000 %>%
tbl_summary(
by = Day,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_2", "stat_0", "stat_3") ~ "**Days with Highest Amylase**") %>%
bold_labels() %>%
show_header_names()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DemographicTableDay5000$Day[DemographicTableDay5000$Day == "NA"] <- NA
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(WhippleDemographicTable1$SEX) <- "Sex"
var_label(WhippleDemographicTable1$Fistula.Grade) <- "Fistula"
var_label(WhippleDemographicTable1$RACE_NEW) <- "Race"
var_label(WhippleDemographicTable1$ASACLAS) <- "ASA Classification"
var_label(DemographicTableDay$HYPERMED) <- "Hypertension"
var_label(DemographicTableDay$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, Day = ifelse(DAMYLASE %in% 3:5, "3-5",
ifelse(DAMYLASE %in% 1, "1",
ifelse(DAMYLASE %in% 0, NA, ">5"))))
WhippleDemographicTable2 <-
mutate(WhippleDemographicTable1, AmylaseCutoff300DT =
ifelse(peak_amylase > 300, ">300", "<300"))
WhippleDemographicTable <-
mutate(WhippleDemographicTable2, Amylasecutoff5000DT =
ifelse(peak_amylase > 5000, ">5000", "<5000"))
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, FistulaGradeBinary =
ifelse(Fistula.Grade =="No CR-POPF", 0,
ifelse(Fistula.Grade =="CR-POPF", 1, "NA")))
remove(WhippleDayDemographicTable1)
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230)) %>%
ggplot(aes(x = DAMYLASE, y = peak_amylase)) +
geom_point()
print(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSORDay <-
cbind(FRSOddsRatio1, Day = FRSOddsRatio2$Day)
print(FRSFUll$CPT)
sum(FRSFUll$CPT == 48150)
WhippleDemographicTable <-
subset(FRSFUll, CPT == "48150" | CPT == "48152")
WhippleDemographicTable <-
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230))
sum(WhippleDemographicTable1$peak_amylase ==1)
Oddsratio3
remove(WhippleDemographicTable2)
Days Demographic Table Amylase cutoff 300
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
DayPredictor <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
DayDemographic300 <-
WhippleDayDemographicTable %>%
select(Day, Age, SEX, RACE_NEW, BMI, Fistula.Grade, ASACLAS, PAN_DUCTSIZE, PAN_GLANDTEXT, AmylaseCutoff300DT)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
DayDemographic300 %>%
tbl_summary(
by = Day,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_2", "stat_0", "stat_3") ~ "**Days with Highest Amylase**") %>%
bold_labels() %>%
show_header_names()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DemographicTableDay5000$Day[DemographicTableDay5000$Day == "NA"] <- NA
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(WhippleDemographicTable1$SEX) <- "Sex"
var_label(WhippleDemographicTable1$Fistula.Grade) <- "Fistula"
var_label(WhippleDemographicTable1$RACE_NEW) <- "Race"
var_label(WhippleDemographicTable1$ASACLAS) <- "ASA Classification"
var_label(DemographicTableDay$HYPERMED) <- "Hypertension"
var_label(DemographicTableDay$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, Day = ifelse(DAMYLASE %in% 3:5, "3-5",
ifelse(DAMYLASE %in% 1, "1",
ifelse(DAMYLASE %in% 0, NA, ">5"))))
WhippleDemographicTable2 <-
mutate(WhippleDemographicTable1, AmylaseCutoff300DT =
ifelse(peak_amylase > 300, ">300", "<300"))
WhippleDemographicTable <-
mutate(WhippleDemographicTable2, Amylasecutoff5000DT =
ifelse(peak_amylase > 5000, ">5000", "<5000"))
WhippleDayDemographicTable <-
mutate(WhippleDayDemographicTable, FistulaGradeBinary =
ifelse(Fistula.Grade =="No CR-POPF", 0,
ifelse(Fistula.Grade =="CR-POPF", 1, "NA")))
remove(WhippleDayDemographicTable1)
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230)) %>%
ggplot(aes(x = DAMYLASE, y = peak_amylase)) +
geom_point()
print(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSORDay <-
cbind(FRSOddsRatio1, Day = FRSOddsRatio2$Day)
print(FRSFUll$CPT)
sum(FRSFUll$CPT == 48150)
WhippleDemographicTable <-
subset(FRSFUll, CPT == "48150" | CPT == "48152")
WhippleDemographicTable <-
WhippleDemographicTable %>%
mutate(peak_amylase = ifelse(DAMYLASE == 1, PAN_AMYLASE_POD1, PAN_AMYLASE_POD230))
sum(WhippleDemographicTable1$peak_amylase ==1)
Oddsratio3
remove(WhippleDemographicTable2)
NSQIP Short Term Outcomes Demographic Table
anti(retrocolic) anastamosis
preop XRT
Preop chemo
DM
Age
bmi
FRS Score Demographic Table
install.packages("survminer")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
NSQIPShortTermOutcomes <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
NSQIPDemographicTable <-
NSQIPShortTermOutcomes %>%
select(PAN_APPROACH, Age, SEX, BMI, RACE_NEW, ASACLAS, Fistula.Grade, OPTIME, MORTPROB, MORBPROB, TOTHLOS, OUPNEUMO, PULEMBOL, WNDINFD, STILLINHOSP, REOPERATION1, OTHSYSEP)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
NSQIPDemographicTable %>%
tbl_summary(
by = PAN_APPROACH,
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_0", "stat_1", "stat_2", "stat_3") ~ "**NSQIP Short Term Outcomes**") %>%
bold_labels()
?modify_header
show_header_names()
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DGE$PAN_DELGASTRIC_20140315[DGEDemoTable$PAN_DELGASTRIC_20140315 =="Unknown"] <- NA
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(NSQIPDemographicTable$SEX) <- "Sex"
var_label(NSQIPDemographicTable$RACE_NEW) <- "Race"
var_label(NSQIPDemographicTable$ASACLAS) <- "ASA Classification"
var_label(NSQIPDemographicTable$Fistula.Grade) <- "Fistula"
var_label(NSQIPDemographicTable$OPTIME) <- "Total operation time"
var_label(NSQIPDemographicTable$OUPNEUMO) <- "Number of Pneumonia Occurrences"
var_label(NSQIPDemographicTable$MORTPROB) <- " Estimated Probability of Mortality"
var_label(NSQIPDemographicTable$MORBPROB) <- "Estimated Probability of Morbidity"
var_label(NSQIPDemographicTable$TOTHLOS) <- "Length of total hospital stay"
var_label(NSQIPDemographicTable$OUPNEUMO) <- "Occurrences Pneumonia"
var_label(NSQIPDemographicTable$PULEMBOL) <- "Occurrences Pulmonary Embolism"
var_label(NSQIPDemographicTable$WNDINFD) <- " Occurrences Deep Incisional SSI"
var_label(NSQIPDemographicTable$STILLINHOSP) <- "Still in Hospital > 30 Days"
var_label(NSQIPDemographicTable$REOPERATION1) <- "Unplanned Reoperation 1"
var_label(NSQIPDemographicTable$OTHSYSEP) <- "Population"
var_label(NSQIPDemographicTable$MORTPROB) <- "Estimated Probability of Mortality (%)"
var_label(NSQIPDemographicTable$MORBPROB) <- "Estimated Probability of Morbidity (%)"
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
DGE <- mutate(DGE, DelayedGastricEmptying =
ifelse(PAN_DELGASTRIC_20140315 > 30, "Obese","Non-Obese"))
DGE$PAN_DELGASTRIC_20140315[DGE$PAN_DELGASTRIC_20140315 == "Unknown"] <- NA
DGE <- mutate(FRSFUll, BMIOWeight = ifelse(BMI > 24, "Overweight","Normal BMI"))
print(NCDBDemographicTable$sur)
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Pacific"] <- "West"
NCDBDistalPancreatectomy <- as.factor(NCDBDistalPancreatectomy)
FRSFullPancreatectomy <- FRSFUll[FRSFUll$RX_SUMM_SURG_PRIM_SITE.2=="Partial pancreatectomy, distal",]
remove(NCDBMISVSOPEN)
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 20,000 or more adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Middle Atlantic"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Mountain"] <- "West"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="South Atlantic"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Pacific"] <- "West"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 2,500 to 19,999, adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 250,000 to 1 million population"] <- "Metro"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 1 million population or more"] <- "Metro"
NCDBDemographicTable$UR_CD_13[NCDBDemographicTable$UR_CD_13 =="Completely rural or less than 2,500 urban population, not adjacent to a metro area"] <- "Rural"
print(NCDBDistalPancreatectomy$UR_CD_13)
NCDBDemographicTable$Surgery[NCDBDemographicTable$Surgery ==""] <- NA
NCDBDemographicTable <-
cbind(NCDBDemographicTable, Surgery = NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010)
NCDBDemographicTable$FACILITY_LOCATION_CD[NCDBDemographicTable$FACILITY_LOCATION_CD ==""] <- "Unknown"
NCDBDemographicTable$NO_HSD_QUAR_12[NCDBDemographicTable$NO_HSD_QUAR_12 =="Unknown"] <- NA
NCDBDemographicTable$NO_HSD_QUAR_12[NCDBDemographicTable$NO_HSD_QUAR_12 ==""] <- "Unknown"
NCDBDemographicTable$VitalStatus[NCDBDemographicTable$VitalStatus ==""] <- "Unknown"
NCDBDemographicTable$TNM_CLIN_N[NCDBDemographicTable$TNM_CLIN_N =="cX"] <- "Unknown"
NCDBDemographicTable$GRADE[NCDBDemographicTable$GRADE =="Cell type not determined, not stated or not applicable, unknown primaries, high grade dysplasia"] <- "Unknown"
NCDBDemographicTable <- NCDBDistalPancreatectomy[NCDBDistalPancreatectomy$DX_LASTCONTACT_DEATH_MONTHS=="Time to Death", "MIS Converted to Open", "Open"]
NSQIPShortTermOutcomes <-
subset(FRSFUll, CPT == "48140" | CPT == "48145")
NSQIPShortTermOutcomes <-
cbind(FRSFUll, SurgicalMargins = NCDBDistalPancreatectomy$RX_SUMM_SURGICAL_MARGINS)
NCDBDemographicTable1$surgery <- na.omit(NCDBDemographicTable$Surgery)
print(NCDBDemographicTable$SurgicalMargins)
NCDBDemographicTable$RX_SUMM_SURGICAL_MARGINS[NCDBDemographicTable$RX_SUMM_SURGICAL_MARGINS =="Margins not evaluable, Cannot be assessed (indeterminate)"] <- "Unknown"
NCDBDemographicTable %>%
rename(
SurgicalMargins1 = SurgicalMargins,
SurgicalMargins = SurgicalMargins
)
NCDBDistalPancreatectomy$RX_SUMM_SURGICAL_MARGINS[NCDBDistalPancreatectomy$RX_SUMM_SURGICAL_MARGINS =="No residual tumor All margins are grossly and microscopically negative"] <- "R0"
NCDBDistalPancreatectomy$RX_SUMM_SURGICAL_MARGINS[NCDBDistalPancreatectomy$RX_SUMM_SURGICAL_MARGINS =="Microscopic residual tumor Cannot be seen by the naked eye"] <- "R1"
NCDBDistalPancreatectomy$RX_SUMM_SURGICAL_MARGINS[NCDBDistalPancreatectomy$RX_SUMM_SURGICAL_MARGINS =="Unknown or not applicable"] <- "Unknown"
NCDBDistalPancreatectomy$RX_SUMM_SURGICAL_MARGINS[NCDBDistalPancreatectomy$RX_SUMM_SURGICAL_MARGINS =="Macroscopic residual tumor, Gross tumor of the primary site which is visible to the naked eye"] <- "R2"
NCDBDemographicTable$SurgicalMargins[NCDBDemographicTable$SurgicalMargins =="Residual tumor, NOS Involvement is indicated, but not otherwise specified"] <- "Unknown"
Residual tumor, NOS Involvement is indicated, but not otherwise specified
fisher.test(as.factor(NCDBDemographicTable$Surgery), as.factor(NCDBDemographicTable$SurgicalMargins, work))
table(as.factor(FRSFUll$Age), as.factor(FRSFUll$PRNCPTX))
?fisher.test
chisq.test(table(NCDBDemographicTable$Surgery, NCDBDemographicTable$SurgicalMargins))
print(NSQIPShortTermOutcomes$PAN_APPROACH == "Unknown")
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Open (planned)"] <- "Open"
NSQIPDemographicTable$PAN_APPROACH[nsqip$PAN_APPROACH =="NOTES w/ unplanned conversion to open"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Laparoscopic"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Laparoscopic w/ open assist"] <- "MIS Converted to Open"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Laparoscopic w/ unplanned conversion to open"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Robotic"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Robotic w/ unplanned conversion to open"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Robotic w/ open assist"] <- "MIS Converted to Open"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Other"] <- NA
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Other MIS approach"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Other MIS approach w/ open assist"] <- "MIS Converted to Open"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Hybrid"] <- "MIS"
NSQIPShortTermOutcomes$PAN_APPROACH[NSQIPShortTermOutcomes$PAN_APPROACH =="Hybrid w/ open assist"] <- "MIS Converted to Open"
NSQIPDemographicTable$ASACLAS[NSQIPDemographicTable$ASACLAS =="None assigned"] <- "Unknown"
NSQIPDemographicTable1 <- table(NSQIPDemographicTable$PAN_APPROACH, NSQIPDemographicTable$ASACLAS)
fisher.test(NSQIPDemographicTable1, simulate.p.value = TRUE, B = 1e6)
NSqipDemographicTable2 <- NSQIPDemographicTable$MORBPROB[NSQIPDemographicTable$MORBPROB * 100]
NSQIPDemographicTable$MORBPROB <- (NSQIPDemographicTable$MORBPROB * 100)
Demographic Table NCDB Long Term Outcomes
anti(retrocolic) anastamosis
preop XRT
Preop chemo
DM
Age
bmi
FRS Score Demographic Table
install.packages("survminer")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(ifelse)
Importin csv
getwd()
FRSFUll <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
NCDBDemographicTable <-
NCDBDemographicTable %>%
select(surgery, AGE, SEX, RACE.2, INSURANCE_STATUS.2, FACILITY_LOCATION_CD, MED_INC_QUAR_12, NO_HSD_QUAR_12, UR_CD_13, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, GRADE)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
NCDBDemographicTable %>%
tbl_summary(
by = Surgery,
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_0", "stat_1", "stat_2", "stat_3") ~ "**NCDB Long Term Outcomes**") %>%
bold_labels() %>%
show_header_names()
?modify_header
show_header_names()
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DGE$PAN_DELGASTRIC_20140315[DGEDemoTable$PAN_DELGASTRIC_20140315 =="Unknown"] <- NA
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(NCDBDemographicTable$TTDeath) <- "Median Survival"
var_label(NCDBDemographicTable$VitalStatus) <- "Vital Status"
var_label(NCDBDemographicTable$RACE.2) <- "Race"
var_label(NCDBDemographicTable$SMOKE) <- "Smoker"
var_label(NCDBDemographicTable$INSURANCE_STATUS.2) <- "Insurance Status"
var_label(NCDBDemographicTable$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(NCDBDemographicTable$TNM_CLIN_T) <- "TNM Clinical T"
var_label(NCDBDemographicTable$TNM_CLIN_N) <- "TNM Clinical N"
var_label(NCDBDemographicTable$UR_CD_13) <- "Population"
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
DGE <- mutate(DGE, DelayedGastricEmptying =
ifelse(PAN_DELGASTRIC_20140315 > 30, "Obese","Non-Obese"))
DGE$PAN_DELGASTRIC_20140315[DGE$PAN_DELGASTRIC_20140315 == "Unknown"] <- NA
DGE <- mutate(FRSFUll, BMIOWeight = ifelse(BMI > 24, "Overweight","Normal BMI"))
print(NCDBDemographicTable$sur)
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Pacific"] <- "West"
NCDBDistalPancreatectomy <- as.factor(NCDBDistalPancreatectomy)
NCDBDistalPancreatectomy <- NCDBMISVSOPEN[NCDBMISVSOPEN$RX_SUMM_SURG_PRIM_SITE.2=="Partial pancreatectomy, distal",]
remove(NCDBMISVSOPEN)
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 20,000 or more adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Middle Atlantic"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="New England"] <- "NorthEast"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="East South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Mountain"] <- "West"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="South Atlantic"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West South Central"] <- "South"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="West North Central"] <- "Midwest"
NCDBDistalPancreatectomy$FACILITY_LOCATION_CD[NCDBDistalPancreatectomy$FACILITY_LOCATION_CD =="Pacific"] <- "West"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Urban population of 2,500 to 19,999, adjacent to a metro area"] <- "Urban"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 250,000 to 1 million population"] <- "Metro"
NCDBDistalPancreatectomy$UR_CD_13[NCDBDistalPancreatectomy$UR_CD_13 =="Counties in metro areas of 1 million population or more"] <- "Metro"
NCDBDemographicTable$UR_CD_13[NCDBDemographicTable$UR_CD_13 =="Completely rural or less than 2,500 urban population, not adjacent to a metro area"] <- "Rural"
print(NCDBDistalPancreatectomy$UR_CD_13)
NCDBDemographicTable$Surgery[NCDBDemographicTable$Surgery ==""] <- NA
NCDBDemographicTable <-
cbind(NCDBDemographicTable, Surgery = NCDBDistalPancreatectomy$RX_HOSP_SURG_APPR_2010)
NCDBDemographicTable$FACILITY_LOCATION_CD[NCDBDemographicTable$FACILITY_LOCATION_CD ==""] <- "Unknown"
NCDBDemographicTable$NO_HSD_QUAR_12[NCDBDemographicTable$NO_HSD_QUAR_12 =="Unknown"] <- NA
NCDBDemographicTable$NO_HSD_QUAR_12[NCDBDemographicTable$NO_HSD_QUAR_12 ==""] <- "Unknown"
NCDBDemographicTable$VitalStatus[NCDBDemographicTable$VitalStatus ==""] <- "Unknown"
NCDBDemographicTable$TNM_CLIN_N[NCDBDemographicTable$TNM_CLIN_N =="cX"] <- "Unknown"
NCDBDemographicTable$GRADE[NCDBDemographicTable$GRADE =="Cell type not determined, not stated or not applicable, unknown primaries, high grade dysplasia"] <- "Unknown"
NCDBDemographicTable <- NCDBDistalPancreatectomy[NCDBDistalPancreatectomy$DX_LASTCONTACT_DEATH_MONTHS=="Time to Death", "MIS Converted to Open", "Open"]
NCDBDemographicTable <-
cbind(NCDBDemographicTable, VitalStatus = NCDBDistalPancreatectomy$PUF_VITAL_STATUS)
FRS Amylase Cutoff >5,000 Odds ratio for CR-POPF
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, day )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSOddsRatio34 %>%
select(Fistula.Grade, AmylaseCutoff) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
FRSOddsRatio34 <-
mutate(FRSOddsRatio3, AmylaseCutoff = ifelse(FRSFUll$PAN_AMYLASE_POD230 %in% 5000:200000, ">5,000",
ifelse(FRSFUll$PAN_AMYLASE_POD230 %in% 0:5000, "<5,000",
ifelse(FRSFUll$PAN_AMYLASE_POD230 ==NA, "NA"))))
mutate(gradebook, letter = ifelse(grade %in% 60:69, "D",
ifelse(grade %in% 70:79, "C",
print(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, AmylaseLevel = FRSFUll$PAN_AMYLASE_POD230)
remove(FRSOddsRatio1)
FRSOddsRatio3$AmylaseLevel <- na.omit(FRSOddsRatio3$AmylaseLevel)
FRSAmylase <- FRSOddsRatio3[FRSOddsRatio3$AmylaseLevel >300,]
FRS Amylase Cutoff >300 Odds ratio for CR-POPF
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, day )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSOddsRatio3 %>%
select(Fistula.Grade, AmylaseCutoff) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
FRSOddsRatio3 <-
mutate(FRSOddsRatio3, AmylaseCutoff = ifelse(FRSFUll$PAN_AMYLASE_POD230 %in% 300:200000, ">300",
ifelse(FRSFUll$PAN_AMYLASE_POD230 %in% 0:300, "<300",
ifelse(FRSFUll$PAN_AMYLASE_POD230 ==NA, "NA"))))
mutate(gradebook, letter = ifelse(grade %in% 60:69, "D",
ifelse(grade %in% 70:79, "C",
print(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, AmylaseLevel = FRSFUll$PAN_AMYLASE_POD230)
remove(Sm_FRSFull)
FRSOddsRatio3$AmylaseLevel <- na.omit(FRSOddsRatio3$AmylaseLevel)
FRSAmylase <- FRSOddsRatio3[FRSOddsRatio3$AmylaseLevel >300,]
Which day is a better predictor for CRPOF
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, day )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSORDay %>%
select(Fistula.Grade, Day) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ day + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSORDay$Day[FRSORDay$Day =="Other"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
hist(FRSFUll$DAMYLASE)
FRSOddsRatio2 <-
mutate(FRSFUll, Day = ifelse(DAMYLASE %in% 3:5, "3-5",
ifelse(DAMYLASE %in% 1:1, "1", "Other")))
print(FRSOddsRatio1$Fistula.Grade)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSORDay <-
cbind(FRSOddsRatio1, Day = FRSOddsRatio2$Day)
Odds Ratio for FRS Final
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, Sex, AgeBetter, ASACLAS, , Duct, PAN_GLANDTEXT, AmylaseDrainPod1 )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSOddsRatio1 %>%
select(Fistula.Grade, Sex, AgeBetter, BMINew, NeoadjuvantXRT, Duct, Pathology, PAN_GLANDTEXT) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ Sex + AgeBetter + BMINew + NeoadjuvantXRT + Duct + Pathology + PAN_GLANDTEXT,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
FRSOddsRatioFinal <-
mutate(FRSOddsRatio1, Pathology = ifelse(Pathology1 = "Pancreatic adenocarcinoma", "Pancreatic adenocarcinoma", "Other"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSOddsRatio1$NeoadjuvantXRT[FRSOddsRatio1$NeoadjuvantXRT =="Unknown"] <- NA
FRSOddsRatio2 <- mutate(FRSOddsRatio1, Pathology1 = ifelse(Pathology ==Pancreatic adenocarcinoma, "Pancreatic adenocarcinoma", "Other"))
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, BMI = FRSFUll$PAN_RADIO)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
print(FRSOddsRatio1$Pathology)
barplot(FRSOddsRatio1$Pathology)
chartr(FRSOddsRatio1$Pathology)
graphics::FRSOddsRatio1$Pathology
Survival Analysis of subsetted Neoadjuvant Mult agent chemotherapy groups looking at surgical margins
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
Vascular involvement
remove clinical downstaging from survival analysis
Like I did with downstaging remove downstaging resect
deviation in standard of care—> leads to
R0 resection clinical downstaging independently improved survival
SurvivalFigure3 <- read.csv ("Figure3.csv", header = TRUE, sep = "," )
Table3Final <-
Demotable3 %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS.2, Regions, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.4, Surgery.Type, Tumor.Grade, Surgical.Margins, Figure.4)
Downstagingsurvival$SurgicalMargins[Downstagingsurvival$SurgicalMargins == "R2"] <- "R1/R2"
Oddsratio2$Death <- as.numeric(Oddsratio2$Death)
Oddsratio1$Death[Oddsratio1$Death =="Alive"] <- 1
Oddsratio2 <-
cbind(Oddsratio1, Age = Demotable2$AGE.2)
UVSurv <-
Downstagingsurvival %>%
select(SurgicalMargins, Age, INSURANCE_STATUS.2, No.High.School.Degree.2, TNM_CLIN_T, TNM_CLIN_N, Death, TTDeath) %>%
tbl_uvregression(
method = coxph,
y = Surv(TTDeath, Death),
exponentiate = TRUE) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVSurv <-
coxph(Surv(TTDeath, Death) ~ SurgicalMargins + Age,
data = Downstagingsurvival
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.05) %>%
bold_labels() %>%
italicize_levels()
Ensure that vital status is labeled as 1= Alive and 2=Death
tbl_merge(
list(UVSurv, MVSurv),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Newdataframename <-
cbind(allData, NewColumnName = Dataframetograbcolumnfrom$Columnyouwanttoaddtootherdataframe)
dow <-
mutate(Oddsratio3, duct = ifelse(Age < 60, "<60", ">60"))
print(Downstagingsurvival$SurgicalMargins)
str(Downstagingsurvival)
Pre vs Post incision door openings per count
FRS Score Demographic Table
FRS Score Demographic Table
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
DOPre <- read.csv ("DoorOpeningsPrePostcount.csv", header = TRUE, sep = "," )
Final Code:
DOPreFinal <-
DOPre %>%
select(Anesthesiologist_Breaks_.._Pre, Nurse_Break_._Pre, Surgical_Tech_Break_._Pre, Total_Staff_Breaks_._Pre, Nurse_Supplies_._Pre, Vendor_Supplies_._Pre, Surgical_Team_.i.e._assessing_patient_status_and_surgery_start_time._Pre, Hallway_Door_Openings_.nonsterile_door_patient_entering_supply.runs_surgical_team_etc.._Pre, Case_irrelevent_talk_Pre, Other_.i.e..case.related.phone.calls..C.arm.delivery._Pre, No.clear_reason_Pre, Pre_Incision)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
DOPreFinal %>%
tbl_summary(
by = Pre_Incision,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Door Opening Reasons**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Pre vs Post Incision**") %>%
bold_labels()
str(FRSFinal)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DOPre[DOPre ==0] <- NA
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(DOPreFinal$Anesthesiologist_Breaks_.._Pre) <- "Anesthesiologist Breaks"
var_label(DOPreFinal$Nurse_Break_._Pre) <- "Nurse Breaks"
var_label(DOPreFinal$Surgical_Tech_Break_._Pre) <- "Surgical Tech Breaks"
var_label(DOPreFinal$Anesthesiologist_Breaks_.._Pre) <- "Anesthesiologist Breaks"
var_label(DOPreFinal$Total_Staff_Breaks_._Pre) <- "Total Staff Breaks"
var_label(DOPreFinal$Nurse_Supplies_._Pre) <- "Nurse Supply Breaks"
var_label(DOPreFinal$Vendor_Supplies_._Pre) <- "Vendor Supplies Breaks"
var_label(DOPreFinal$Surgical_Team_.i.e._assessing_patient_status_and_surgery_start_time._Pre) <- "Assessing Patient Status/Surgery Start Time"
var_label(DOPreFinal$Anesth._attending_helping_resident_Pre) <- "Anesthesiologist Attending Assisting Resident"
var_label(DOPreFinal$Hallway_Door_Openings_.nonsterile_door_patient_entering_supply.runs_surgical_team_etc.._Pre) <- "Hallway Door Openings"
var_label(DOPreFinal$Case_irrelevent_talk_Pre) <- "Case Irrelevant Discussion"
var_label(DOPreFinal$Other_.i.e..case.related.phone.calls..C.arm.delivery._Pre) <- "Other (phone calls, C Arm Deliver, etc..."
var_label(DOPreFinal$No.clear_reason_Pre) <- "No Clear Reasons"
DOPre$No.clear_reason_Pre <- as.numeric(DOPre$No.clear_reason_Pre)
DOPreFinal <- na.omit(DOPreFinal)
hist(DOPreFinal)
Pre Vs Post Door Openings Summary Table
FRS Score Demographic Table
FRS Score Demographic Table
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
DOPre <- read.csv ("DoorOpeningsPrePost.csv", header = TRUE, sep = "," )
Final Code:
DOPreFinal <-
DOPre %>%
select(Anesthesiologist_Breaks_.._Pre, Nurse_Break_._Pre, Surgical_Tech_Break_._Pre, Total_Staff_Breaks_._Pre, Nurse_Supplies_._Pre, Vendor_Supplies_._Pre, Surgical_Team_.i.e._assessing_patient_status_and_surgery_start_time._Pre, Anesth._attending_helping_resident_Pre, Hallway_Door_Openings_.nonsterile_door_patient_entering_supply.runs_surgical_team_etc.._Pre, Case_irrelevent_talk_Pre, Other_.i.e..case.related.phone.calls..C.arm.delivery._Pre, No.clear_reason_Pre, Pre_Incision)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
DOPreFinal %>%
tbl_summary(
by = Pre_Incision,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Door Opening Reasons**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Pre vs Post Incision**") %>%
bold_labels()
str(FRSFinal)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DOPre[DOPre ==0] <- NA
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(DOPreFinal$Anesthesiologist_Breaks_.._Pre) <- "Anesthesiologist Breaks"
var_label(DOPreFinal$Nurse_Break_._Pre) <- "Nurse Breaks"
var_label(DOPreFinal$Surgical_Tech_Break_._Pre) <- "Surgical Tech Breaks"
var_label(DOPreFinal$Anesthesiologist_Breaks_.._Pre) <- "Anesthesiologist Breaks"
var_label(DOPreFinal$Total_Staff_Breaks_._Pre) <- "Total Staff Breaks"
var_label(DOPreFinal$Nurse_Supplies_._Pre) <- "Nurse Supply Breaks"
var_label(DOPreFinal$Vendor_Supplies_._Pre) <- "Vendor Supplies Breaks"
var_label(DOPreFinal$Surgical_Team_.i.e._assessing_patient_status_and_surgery_start_time._Pre) <- "Assessing Patient Status/Surgery Start Time"
var_label(DOPreFinal$Anesth._attending_helping_resident_Pre) <- "Anesthesiologist Attending Assisting Resident"
var_label(DOPreFinal$Hallway_Door_Openings_.nonsterile_door_patient_entering_supply.runs_surgical_team_etc.._Pre) <- "Hallway Door Openings"
var_label(DOPreFinal$Case_irrelevent_talk_Pre) <- "Case Irrelevant Discussion"
var_label(DOPreFinal$Other_.i.e..case.related.phone.calls..C.arm.delivery._Pre) <- "Other (phone calls, C Arm Deliver, etc..."
var_label(DOPreFinal$No.clear_reason_Pre) <- "No Clear Reasons"
DOPreFinal$Surgical_Tech_Break_._Pre <- as.factor(DOPreFinal$Surgical_Tech_Break_._Pre)
Odds Ratio of Delayed Gastric Emptying
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, Sex, AgeBetter, ASACLAS, , Duct, PAN_GLANDTEXT, AmylaseDrainPod1 )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
DGEDemoTable$PAN_DELGASTRIC_20140315 <- as.numeric(DGEDemoTable$PAN_DELGASTRIC_20140315)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
DGEDemoTable %>%
select(PAN_DELGASTRIC_20140315, AgeB, SEX, RACE_NEW, BMIOWeight, PanGasDuo, PAN_CHEMO, PAN_RADIO, DIABETES) %>%
tbl_uvregression(
method = glm,
y = PAN_DELGASTRIC_20140315,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(PAN_DELGASTRIC_20140315 ~ AgeB + SEX + BMIOWeight + PanGasDuo,
data = DGEDemoTable,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
DGEDemoTable <-
mutate(DGEDemoTable, AgeB = ifelse(Age < 60, "<60", ">60"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(DGEDemoTable$PAN_RADIO))
DGEDemoTable$PAN_DELGASTRIC_20140315[DGEDemoTable$PAN_DELGASTRIC_20140315 =="No"] <- 0
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, AgeDB = AgeCheck$AgeDoublecheck)
DGEDemoTable[DGEDemoTable == "Unknown"] <- NA
DGE$PAN_GASTDUO[DGE$PAN_GASTDUO == "Unknown"] <- NA
DGE <- mutate(FRSFUll, BMIOWeight = ifelse(BMI > 24, "Overweight","Normal BMI"))
print(DGE$PAN_GASTDUO)
DGE$PAN_GASTDUO[DGE$PAN_GASTDUO =="Null"] <- "Unknown"
DGEDemoTable <-
cbind(DGEDemoTable, PanGasDuo = DGE$PAN_GASTDUO)
Delayed Gastric Emptying Demographic table
anti(retrocolic) anastamosis
preop XRT
Preop chemo
DM
Age
bmi
FRS Score Demographic Table
install.packages("survminer")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
library(ifelse)
Importin csv
getwd()
FRSFUll <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
DGEDemoTable <-
DGE %>%
select(Age, SEX, RACE_NEW, BMIOWeight, PAN_GASTDUO, PAN_CHEMO, PAN_RADIO, SMOKE, HYPERMED, DYSPNEA, PAN_GLANDTEXT, DIABETES, ASCITES, HXCHF, DIALYSIS, HXCOPD, ASACLAS, PAN_DUCTSIZE, PAN_GLANDTEXT, PAN_DELGASTRIC_20140315, PAN_MALIG_HISTOLOGIC, Fistula.Present)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
DGEDemoTable %>%
tbl_summary(
by = PAN_DELGASTRIC_20140315,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Delayed Gastric Emptying**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
DGE$PAN_DELGASTRIC_20140315[DGEDemoTable$PAN_DELGASTRIC_20140315 =="Unknown"] <- NA
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
DGE <- mutate(DGE, DelayedGastricEmptying =
ifelse(PAN_DELGASTRIC_20140315 > 30, "Obese","Non-Obese"))
DGE$PAN_DELGASTRIC_20140315[DGE$PAN_DELGASTRIC_20140315 == "Unknown"] <- NA
DGE <- mutate(FRSFUll, BMIOWeight = ifelse(BMI > 24, "Overweight","Normal BMI"))
print(DGE$PAN_GASTDUO)
DGE$PAN_GASTDUO[DGE$PAN_GASTDUO =="Null"] <- "Unknown"
Odds Ratio: NA Omitted dataset DGE
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, Sex, AgeBetter, ASACLAS, , Duct, PAN_GLANDTEXT, AmylaseDrainPod1 )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
DGEDemoTable$PAN_DELGASTRIC_20140315 <- as.numeric(DGEDemoTable$PAN_DELGASTRIC_20140315)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
DGETable %>%
select(PAN_DELGASTRIC_20140315, AgeB, SEX, RACE_NEW, BMIOWeight, PAN_CHEMO, PAN_RADIO, DIABETES) %>%
tbl_uvregression(
method = glm,
y = PAN_DELGASTRIC_20140315,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(PAN_DELGASTRIC_20140315 ~ AgeB + SEX + BMIOWeight +PAN_CHEMO + PAN_RADIO,
data = DGETable,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
DGEDemoTable <-
mutate(DGEDemoTable, AgeB = ifelse(Age < 60, "<60", ">60"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(DGEDemoTable$PAN_MALIG_HISTOLOGIC))
DGESubset <- na.omit(DGEDemoTable$PAN_MALIG_HISTOLOGIC)
DGEDemoTable$PAN_DELGASTRIC_20140315[DGEDemoTable$PAN_DELGASTRIC_20140315 =="No"] <- 0
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, AgeDB = AgeCheck$AgeDoublecheck)
DGEDemoTable[DGEDemoTable == "N/A"] <- NA
print(DGEDemoTable$PAN_MALIG_HISTOLOGIC)
PancAdenoTable <-
DGEDemoTable[DGEDemoTable$PAN_MALIG_HISTOLOGIC=="Pancreatic adenocarcinoma",]
DGETable <- na.omit(DGEDemoTable)
Odds Ratio FRS
FRS Score Demographic Table
install.packages("datatable")
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
library(IfElse)
FRSOddsRatio1 <-
FRSOddsRatio1 %>%
select(Fistula.Grade, Sex, AgeBetter, ASACLAS, , Duct, PAN_GLANDTEXT, AmylaseDrainPod1 )
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
?filter
FRSOddsRatio1 %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll$PAN_AMYLASE_POD1[FRSFUll$PAN_AMYLASE_POD1 == ">5,000"] <- "Yes"
FRSFUll$BMI[FRSFUll$BMI == >24] <- ">24"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
UnivariantModel <-
FRSOddsRatio1 %>%
select(Fistula.Grade, Sex, AgeBetter, ASACLAS, Duct, PAN_GLANDTEXT, AmylaseDrainPod1) %>%
tbl_uvregression(
method = glm,
y = Fistula.Grade,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Fistula.Grade ~ Sex + AgeBetter + ASACLAS + Duct + PAN_GLANDTEXT + AmylaseDrainPod1,
data = FRSOddsRatio1,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
print(FRSFUll$PRNCPTX)
?filter
str(FRSFUll)
FRSOddsRatio1$Fistula.Grade <- as.numeric(FRSOddsRatio1$Fistula.Grade)
FRSFUll %>%
[BMI == >24] <- ">24"
FRSFUll <- mutate(FRSFUll, BMINew = ifelse(BMI == >24 |BMI == ))
ifelse(BMI >= >24, ">24","<24")
oddsratio1 <-
ifelse(FRSFUll$BMI >24, ">24", "<24")
as.factor(FRSFUll$BMI)
Oddsratio1 <- FRSFUll(ifelse(BMI, >24, ">24", "<24"))
AgeCheck <- mutate(FRSFUll, AgeDoublecheck =
ifelse(Age > 60, ">60", "<60"))
Oddsratio3 <-
mutate(Oddsratio3, duct = ifelse(Age < 60, "<60", ">60"))
sum(is.na(Oddsratio3$AmylaseDrainPod1))
str(FRSOddsRatio1$AgeBetter)
sum(is.na(FRSOddsRatio1$AgeBetter))
FRSOddsRatio1$Fistula.Grade[FRSOddsRatio1$Fistula.Grade =="CR-POPF"] <- 1
FRSOddsRatio1 <-
cbind(FRSOddsRatio1, AgeDB = AgeCheck$AgeDoublecheck)
Demographic Table CR-POPF vs No CR-POPF mean & SD of the perioperative labs
FRS Score Demographic Table
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
oddsratio <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
FRSFinalMean <-
FRSFUll %>%
select(Fistula.Grade, Age, ANESTHES, PRSODM, PRBUN, PRCREAT, PRALBUM, PRBILI, PRSGOT, PRALKPH, PRALKPH, PRWBC, PRHCT, PRPLATE, PRPTT, PRINR, PRPT)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
FRSFinalMean %>%
tbl_summary(
by = Fistula.Grade,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll[FRSFUll =="NULL"] <- "Unknown"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
summary(FRSFUll$PAN_APPROACH)
str(FRSFUll$PAN_APPROACH)
print(FRSFUll$PAN_APPROACH)
Demographic Table CR-POPF vs No CR-POPF
FRS Score Demographic Table
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
library(ggplot2)
library(survminer)
Importin csv
getwd()
FRSFUll <- read.csv ("Panfinal.csv", header = TRUE, sep = "," )
Final Code:
FRSFinal <-
FRSFUll %>%
select(Age, SEX, WEIGHT, HEIGHT, BMI, RACE_NEW, SMOKE, HYPERMED, DYSPNEA, DIABETES, ASCITES, HXCHF, DIALYSIS, HXCOPD, ASACLAS, PAN_DUCTSIZE, PAN_GLANDTEXT, PAN_DRAINS, PAN_DRAINSYS_SUCTN, PAN_PERCDRAIN_20140315, PAN_DELGASTRIC_20140315, PAN_MALIG_HISTOLOGIC, Fistula.Grade, REOPERATION1, OPTIME, TOTHLOS, STILLINHOSP, DPRNA, DPRBUN, DPRCREAT, DPRALBUM, DPRBILI, DPRSGOT, DPRALKPH, DPRWBC, DPRHCT, DPRPLATE, DPRPTT, DPRPT, DPRINR, PRSODM, PRBUN, PRCREAT, PRALBUM, PRBILI, PRSGOT, PRALKPH, PRALKPH, PRWBC, PRHCT, PRPLATE, PRPTT, PRINR, PRPT)
str(FRSFUll$RACE_NEW)
FRSFinal <-
na.omit(FRSFUll)
FRSFUll$BMI <- (FRSFUll$WEIGHT * 703) / (FRSFUll$HEIGHT * FRSFUll$HEIGHT)
FRSFinal %>%
tbl_summary(
by = Fistula.Grade,
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**CR-POPF vs No CR-POPF**") %>%
bold_labels()
str(Sm_FRSFull)
summary(FRSFUll$HXCOPD)
print(FRSFUll$HXCOPD)
FRSFUll$SMOKE <- as.factor(FRSFUll$SMOKE)
as.numeric(FRSFUll$Age)
FRSFUll[FRSFUll =="NULL"] <- "Unknown"
FRSComplete <- Oddsratio2[Oddsratio2$Figure.3=="Neoadjuvant Multiagent Chemotherapy",]
var_label(FRSFUll$AGE) <- "Age"
var_label(FRSFUll$SEX) <- "Sex"
var_label(FRSFUll$RACE_NEW) <- "Race"
var_label(FRSFUll$SMOKE) <- "Smoker"
var_label(FRSFUll$HYPERMED) <- "Hypertension"
var_label(FRSFUll$DIABETES) <- "Diabetes"
var_label(FRSFUll$ASCITES) <- "Ascites"
var_label(FRSFUll$HXCHF) <- "Hx of CHF 30 Prior to Surgery"
var_label(FRSFUll$BMI) <- "BMI"
Survival Based off downstaging for patients treated with neoadjuvant multiagent chemo
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
SurvivalFigure3 <- read.csv ("Figure3.csv", header = TRUE, sep = "," )
Table3Final <-
Demotable3 %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS.2, Regions, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.4, Surgery.Type, Tumor.Grade, Surgical.Margins, Figure.4)
Downstagingsurvival[Downstagingsurvival == "Unknown"] <- NA
Oddsratio2$Death <- as.numeric(Oddsratio2$Death)
Oddsratio1$Death[Oddsratio1$Death =="Alive"] <- 1
Oddsratio2 <-
cbind(Oddsratio1, Age = Demotable2$AGE.2)
UVSurv <-
Downstagingsurvival %>%
select(ClinicalDownstaging, Age, INSURANCE_STATUS.2, No.High.School.Degree.2, TNM_CLIN_T, TNM_CLIN_N, Death, TTDeath) %>%
tbl_uvregression(
method = coxph,
y = Surv(TTDeath, Death),
exponentiate = TRUE) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVSurv <-
coxph(Surv(TTDeath, Death) ~ ClinicalDownstaging + Age,
data = Downstagingsurvival
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
Ensure that vital status is labeled as 1= Alive and 2=Death
tbl_merge(
list(UVSurv, MVSurv),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Survival Analysis Univariable & Multivariable for neoadjuvant vs postop Treatment groups Final
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
SurvivalFigure3 <- read.csv ("Figure3.csv", header = TRUE, sep = "," )
Table3Final <-
Demotable3 %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS.2, Regions, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.4, Surgery.Type, Tumor.Grade, Surgical.Margins, Figure.4)
Oddsratio2$TNM_CLIN_N[Oddsratio2$TNM_CLIN_N == "Unknown"] <- NA
Oddsratio2$Death <- as.numeric(Oddsratio2$Death)
Oddsratio1$Death[Oddsratio1$Death =="Alive"] <- 1
Oddsratio2 <-
cbind(Oddsratio1, Age = Demotable2$AGE.2)
UVSurv <-
Oddsratio2 %>%
select(Figure.3, Age, INSURANCE_STATUS.2, No.High.School.Degree.2, TNM_CLIN_T, TNM_CLIN_N, Death, TTDeath) %>%
tbl_uvregression(
method = coxph,
y = Surv(TTDeath, Death),
exponentiate = TRUE) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVSurv <-
coxph(Surv(TTDeath, Death) ~ Figure.3 + Age,
data = Oddsratio2
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
Ensure that vital status is labeled as 1= Alive and 2=Death
tbl_merge(
list(UVSurv, MVSurv),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Survival Analysis Figure 4
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
SurvivalFigure3 <- read.csv ("Figure4.csv", header = TRUE, sep = "," )
Table3Final <-
Demotable3 %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS.2, Regions, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.4, Surgery.Type, Tumor.Grade, Surgical.Margins, Figure.4)
Table3Final[Table3Final == "Unknown"] <- NA
Oddsratio2$Death <- as.numeric(Oddsratio2$Death)
Oddsratio2$Death[Oddsratio2$Death =="Dead"] <- 2
Oddsratio2 <-
cbind(Oddsratio2, Death = Demotable3$PUF_VITAL_STATUS)
UVSurv <-
Oddsratio2 %>%
select(Figure.4, Regions, Tumor.Grade, Death, TTDeath) %>%
tbl_uvregression(
method = coxph,
y = Surv(TTDeath, Death),
exponentiate = TRUE) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVSurv <-
coxph(Surv(TTDeath, Death) ~ Tumor.Grade + Regions,
data = Oddsratio2
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
Ensure that vital status is labeled as 1= Alive and 2=Death
tbl_merge(
list(UVSurv, MVSurv),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Odds Ratio for Figure 4
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
library(tidyverse)
library(broom)
Demotable3 <- read.csv ("Figure4.csv", header = TRUE, sep = "," )
Table3Final <-
Demotable3 %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS.2, Regions, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.4, Surgery.Type, Tumor.Grade, Surgical.Margins, Figure.4)
Table3Final$Figure.4[Table3Final$Figure.4 == "Neoadjuvant Multiagent Chemotherapy xrt"] <- 0
Table3Final$MED_INC_QUAR_12[Table3Final$MED_INC_QUAR_12 =="Unknown"] <- NA
Oddsratio <-
cbind(Table3Final, Age2 = Demotable2$AGE.2)
Table3Final$Figure.4 <- as.numeric(Table3Final$Figure.4)
Final Code
UnivariantModel <-
Table3Final %>%
select(Figure.4, Regions, Tumor.Grade) %>%
tbl_uvregression(
method = glm,
y = Figure.4,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Figure.4 ~ Regions + Tumor.Grade,
data = Table3Final,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
var_label(UnivariantOR$Age2) <- "Age"
Odds Ratio Neoadjuvant mutliagent Chemo Univariable & Multivariable
UnivariantModel <-
UnivariantOR %>%
select(Figure.3, Age2, RACE.2, INSURANCE_STATUS.2, No.High.School.Degree.2, TNM_CLIN_T, TNM_CLIN_N, ClinicalDownstaging, Surgery.Type.2, Tumor.Grade) %>%
tbl_uvregression(
method = glm,
y = Figure.3,
method.args = list(family = binomial),
exponentiate = TRUE,
pvalue_fun = ~style_pvalue(.x, digits = 2)
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVOR <-
glm(Figure.3 ~ Age2 + RACE.2 + INSURANCE_STATUS.2 + No.High.School.Degree.2 + Surgery.Type.2 + Tumor.Grade + TNM_CLIN_T + ClinicalDownstaging,
data = UnivariantOR,
family = binomial("logit"),
na.action =na.omit
)
MVOR <-
tbl_regression(MVOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UnivariantModel, MVOR),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Table 3 Vascular Involvement Demographic Table
Final Code
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
Demotable3 <- read.csv ("Figure4.csv", header = TRUE, sep = "," )
Table3Final <-
Demotable3 %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS.2, Regions, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.4, Surgery.Type, Tumor.Grade, Surgical.Margins, Figure.4)
Table3Final$NO_HSD_QUAR_12[Table3Final$NO_HSD_QUAR_12 == ""] <- "Unknown"
SM_DemographicsTable2$[SM_DemographicsTable2$TNM_CLIN_T ==""] <- "Unknown"
DemotableFinal2 <-
cbind(DemotableFinal1, SurgicalMargins = Demotable2$Surgical.Margins)
allData <- cbind(allData, userID = userData$userId)
var_label(DemotableFinal2$ClinicalDownstaging) <- "Clinical Downstaging"
var_label(Table3Final$AGE) <- "Age"
var_label(Table3Final$SEX) <- "Sex"
var_label(Table3Final$RACE.2) <- "Race"
var_label(Table3Final$INSURANCE_STATUS.2) <- "Type of Insurance"
var_label(Table3Final$Regions.2) <- "Regions"
var_label(Table3Final$MED_INC_QUAR_12) <- "Income"
var_label(Table3Final$NO_HSD_QUAR_12) <- "No High School Degree"
var_label(Table3Final$Population.Density) <- "Population Density"
var_label(Table3Final$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(Table3Final$TNM_CLIN_T) <- "TNM Clinical T"
var_label(Table3Final$TNM_CLIN_N) <- "TNM Clinical N"
var_label(Table3Final$Surgery.Type) <- "Surgery Type"
var_label(Table3Final$Tumor.Grade) <- "Tumor Grade"
var_label(Table3Final$Surgical.Margins) <- "Surgical Margins"
var_label(Table3Final$Downstaging.Figure.4) <- "Clinical Downstaging"
Table3Final %>%
tbl_summary(
by = Figure.4,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Treatment Groups for Patients with Vascular Involvement**") %>%
bold_labels()
Table 2 Vascular Involvement Demographic Table
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
Demotable3 <- read.csv ("Figure4.csv", header = TRUE, sep = "," )
Table2Final <-
DemotableFinal2 %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS.2, Regions.2, Income, No.High.School.Degree.2, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, ClinicalDownstaging, Surgery.Type.2, Tumor.Grade, SurgicalMargins, Figure.3)
SM_DemographicsTable2[SM_DemographicsTable2$TNM_CLIN_N == "cx",]$TNM_CLIN_N <- "Unknown"
SM_DemographicsTable2$TNM_CLIN_T[SM_DemographicsTable2$TNM_CLIN_T ==""] <- "Unknown"
DemotableFinal2 <-
cbind(DemotableFinal1, SurgicalMargins = Demotable2$Surgical.Margins)
allData <- cbind(allData, userID = userData$userId)
var_label(DemotableFinal2$ClinicalDownstaging) <- "Clinical Downstaging"
var_label(DemotableFinal$AGE) <- "Age"
var_label(DemotableFinal$SEX) <- "Sex"
var_label(DemotableFinal$RACE.2) <- "Race"
var_label(DemotableFinal$INSURANCE_STATUS.2) <- "Type of Insurance"
var_label(DemotableFinal$Regions.2) <- "Regions"
var_label(DemotableFinal$Income) <- "Income"
var_label(DemotableFinal$No.High.School.Degree.2) <- "No High School Degree"
var_label(DemotableFinal$Population.Density) <- "Population Density"
var_label(DemotableFinal$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(DemotableFinal$TNM_CLIN_T) <- "TNM Clinical T"
var_label(DemotableFinal$TNM_CLIN_N) <- "TNM Clinical N"
var_label(DemotableFinal$Surgery.Type.2) <- "Surgery Type"
var_label(DemotableFinal$Tumor.Grade) <- "Tumor Grade"
Table2Final %>%
tbl_summary(
by = Figure.3,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Treatment Groups for Patients with Vascular Involvement**") %>%
bold_labels()
Table 1 Vascular Involvement Demographic Table
library(dplyr)
library(gtsummary)
library(survival)
library(labelled)
Demotable1 <- read.csv ("vascularinvolvementALL.csv", header = TRUE, sep = "," )
SM_DemographicsTable <-
Demotable1 %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS.2, Regions.2, Income, No.HS.Degree, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, Surgery.Type.2, Tumor.Grade, Demographics.Table.1)
SM_DemographicsTable$TNM_CLIN_T[SM_DemographicsTable$TNM_CLIN_T ==""] <- "Unknown"
DemotableFinal <-
na.omit(SM_DemographicsTable)
var_label(DemotableFinal$Tumor.Grade) <- "Tumor Grade"
var_label(DemotableFinal$AGE) <- "Age"
var_label(DemotableFinal$SEX) <- "Sex"
var_label(DemotableFinal$RACE.2) <- "Race"
var_label(DemotableFinal$INSURANCE_STATUS.2) <- "Type of Insurance"
var_label(DemotableFinal$Regions.2) <- "Regions"
var_label(DemotableFinal$Income) <- "Income"
var_label(DemotableFinal$No.HS.Degree) <- "No High School Degree"
var_label(DemotableFinal$Population.Density) <- "Population Density"
var_label(DemotableFinal$CDCC_TOTAL_BEST) <- "Charlson-Deyo Disability Score"
var_label(DemotableFinal$TNM_CLIN_T) <- "TNM Clinical T"
var_label(DemotableFinal$TNM_CLIN_N) <- "TNM Clinical N"
var_label(DemotableFinal$Surgery.Type.2) <- "Surgery Type"
var_label(DemotableFinal$Tumor.Grade) <- "Tumor Grade"
DemotableFinal %>%
tbl_summary(
by = Demographics.Table.1,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
bold_p() %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Treatment Groups for Patients with Vascular Involvement**") %>%
bold_labels()
Survival Analysis Univariable & Multivariable for neoadjuvant vs postop Treatment groups
Code Script prior to final run:
library(gtsummary)
library(labelled)
library(dplyr)
library(survival)
FreshStart <-
read.csv("figure3.csv", header = T, sep = ",")
SurvivalDraft <-
FreshStart %>%
select(RACE.2, INSURANCE_STATUS.2, Income.2, No.High.School.Degree, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.3, Surgery.Type, Tumor.Grade, Figure.3, PUF_VITAL_STATUS.2, DX_LASTCONTACT_DEATH_MONTHS)
Final Code Used:
UVSurv <-
SurvivalDraft %>%
select(Figure.3, RACE.2, INSURANCE_STATUS.2, Income.2, No.High.School.Degree, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.3, Surgery.Type, Tumor.Grade, PUF_VITAL_STATUS.2, DX_LASTCONTACT_DEATH_MONTHS) %>%
tbl_uvregression(
method = coxph,
y = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2),
exponentiate = TRUE ) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVSurv <-
coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) ~ Figure.3 + RACE.2 + INSURANCE_STATUS.2 + Income.2 +No.High.School.Degree + TNM_CLIN_T + TNM_CLIN_N +Downstaging.Figure.3 +Surgery.Type + Tumor.Grade,
data = SurvivalDraft
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UVSurv, MVSurv),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels()
var_label(SurvivalDraft$Figure.3) <- "Treatment Groups"
Survival Analysis Univariable & Multivariable for neoadjuvant vs postop Treatment groups
Code Script prior to final run:
library(gtsummary)
library(labelled)
library(dplyr)
library(survival)
FreshStart <-
read.csv("figure3.csv", header = T, sep = ",")
SurvivalDraft <-
FreshStart %>%
select(RACE.2, INSURANCE_STATUS.2, Income.2, No.High.School.Degree, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.3, Surgery.Type, Tumor.Grade, Figure.3, PUF_VITAL_STATUS.2, DX_LASTCONTACT_DEATH_MONTHS)
Final Code Used:
UVSurv <-
SurvivalDraft %>%
select(Figure.3, RACE.2, INSURANCE_STATUS.2, Income.2, No.High.School.Degree, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.3, Surgery.Type, Tumor.Grade, PUF_VITAL_STATUS.2, DX_LASTCONTACT_DEATH_MONTHS) %>%
tbl_uvregression(
method = coxph,
y = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2),
exponentiate = TRUE ) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
MVSurv <-
coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS.2) ~ Figure.3 + RACE.2 + INSURANCE_STATUS.2 + Income.2 +No.High.School.Degree + TNM_CLIN_T + TNM_CLIN_N +Downstaging.Figure.3 +Surgery.Type + Tumor.Grade,
data = SurvivalDraft
) %>%
tbl_regression(exponentiate = T
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
list(UVSurv, MVSurv),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels()
var_label(SurvivalDraft$Figure.3) <- "Treatment Groups"
Univariant vs Multivariant Odds Ratio for Neoadjuvant Multiagent Chemo vs Postop Treatment
Rscript code
MultivariantAnalysis <-
Final %>%
select(RACE.2, INSURANCE_STATUS.2, Income.2, No.High.School.Degree, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.3, Surgery.Type, Tumor.Grade, Figure.3)
TBl_uvreg <-
UnivariantAnalysis %>%
tbl_uvregression(
method = glm(
Y = Figure.3,
method.args =list(family = binomial),
exponentiate = T
)
)
T1 <-
tbl_uvregression(
UnivariantAnalysis[c("RACE.2", "INSURANCE_STATUS.2", "Income.2", "No.High.School.Degree", "TNM_CLIN_T", "TNM_CLIN_N", "Downstaging.Figure.3", "Surgery.Type", "Tumor.Grade", "Figure.3")],
method = glm,
y = Figure.3,
method.args = list(family = binomial),
exponentiate = TRUE
)
tbl_merge(
list(T1, T2),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
class()
inherits(tbl_uv_ex1, "gtsummary")
as_gt(ModelOR)
s <-
na.omit(Figure3NADraft)
as.integer(Figure3NADraft$Figure.3)
ModelOR <-
glm(Figure.3 ~ RACE.2 + INSURANCE_STATUS.2 + Income.2 + No.High.School.Degree + TNM_CLIN_T + TNM_CLIN_N + Downstaging.Figure.3 + Surgery.Type + Tumor.Grade,
data = MultivariantAnalysis,
family = binomial("logit"),
na.action =na.omit
)
T1 <-
tbl_regression(ModelOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
T1 <-
tbl_uvregression(
UnivariantAnalysis[c("RACE.2", "INSURANCE_STATUS.2", "Income.2", "No.High.School.Degree", "TNM_CLIN_T", "TNM_CLIN_N", "Downstaging.Figure.3", "Surgery.Type", "Tumor.Grade", "Figure.3")],
method = glm,
y = Figure.3,
method.args = list(family = binomial),
exponentiate = TRUE
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
T2 <-
tbl_regression(ModelOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
Figure3NADraft$Figure.3 <- as.numeric(Figure3NADraft$Figure.3)
UnivariantAnalysis
Final Code
UnivariantAnalysis %>%
tbl_uvregression(
method = glm(
Y = Figure.3,
method.args =list(family = binomial),
exponentiate = T
)
)
T1 <-
tbl_uvregression(
UnivariantAnalysis[c("RACE.2", "INSURANCE_STATUS.2", "Income.2", "No.High.School.Degree", "TNM_CLIN_T", "TNM_CLIN_N", "Downstaging.Figure.3", "Surgery.Type", "Tumor.Grade", "Figure.3")],
method = glm,
y = Figure.3,
method.args = list(family = binomial),
exponentiate = TRUE
)
tbl_merge(
list(T1, T2),
tab_spanner = c("**Univariable**", "**Multivariable**")
) %>%
bold_labels() %>%
italicize_levels()
Odds ratio for figure 3 Neoadjuvant Multi-Agent Chemotherapy vs Postop Treatment
Code below
library(gtsummary)
library(labelled)
library(dplyr)
FreshStart <-
read.csv("figure3.csv", header = T, sep = ",")
Figure3NADraft <-
FreshStart %>%
select(RACE.2, INSURANCE_STATUS.2, Income.2, No.High.School.Degree, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.3, Surgery.Type, Tumor.Grade, Figure.3)
Figure3NADraft <-
FreshStart %>%
select(RACE.2, INSURANCE_STATUS, Income, No.High.School.Degree, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.3, Surgery.Type, Tumor.Grade, Figure.3)
Figure3NADraft[Figure3NADraft$TNM_CLIN_N =="",]$TNM_CLIN_N <- NA
Figure3NADraft[Figure3NADraft$Figure.3 =="1",]$Figure.3 <- 1
Figure3NADraft[Figure3NADraft$Figure.3 =="0",]$Figure.3 <- 0
Final[Final$TNM_CLIN_T =="c0",]$TNM_CLIN_T <- NA
Figure3NADraft[Figure3NADraft$Income.2 =="",]$Income.2 <- NA
Figure3NADraft[Figure3NADraft$Figure.3 =="Postop Multiagent Chemotherapy",]$Figure.3 <- 0
I then made Neoadjuvant Multi-agent Chemotherapy the "event and coded it as 1"
Crossfingers <-
na.omit(Figure3NADraft)
as.integer(Figure3NADraft$Figure.3)
ModelOR <-
glm(Figure.3 ~ RACE.2 + INSURANCE_STATUS.2 + Income.2 + No.High.School.Degree + TNM_CLIN_T + TNM_CLIN_N + Downstaging.Figure.3 + Surgery.Type + Tumor.Grade,
data = Final,
family = binomial("logit"),
na.action =na.omit
)
tbl_regression(ModelOR, exponentiate = T,
pvalue_fun = ~style_pvalue(.x, digits = 2),
) %>%
bold_p(t = 0.10) %>%
bold_labels() %>%
italicize_levels()
Figure3NADraft$Figure.3 <- as.numeric(Figure3NADraft$Figure.3)
Vascular Involvement: Demographic Table Neoadjuvant Multiagent Chemo vs Neoadjuvant Multiagent Chemo still no p value for tnm clin t but already obtained from JMP
Code used
Figure4Draft <-
read.csv("figure4.csv", header = T, sep = ",")
Sm_Figure4 <-
Figure4Draft %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS.2, Regions, MED_INC_QUAR_12, NO_HSD_QUAR_12, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N, Downstaging.Figure.4, Surgery.Type, Surgical.Margins, Tumor.Grade, Figure.4)
Figure4Draft[Figure4Draft$Surgical.Margins == "",]$Surgical.Margins <- "Unknown"
sm_Figure3TNM <-
Figure3Draft %>%
select(TNM_CLIN_T, Figure.3)
install.packages("labelled")
library(gtsummary)
library(labelled)
library(dplyr)
var_label(Sm_Figure4$TNM_CLIN_N) <- "TNM Clinical N"
str(Sm_Figure4)
Figure4Draft[Figure4Draft$Population.Density == "",]$Population.Density <- "Unknown"
Sm_Figure3$TNM_CLIN_T <- as.factor(Sm_Figure3$TNM_CLIN_T)
chisq.test(sm_, y = NULL, correct = TRUE,
p = rep(1/length(x), length(x)), rescale.p = FALSE,
simulate.p.value = FALSE, B = 2000)
Sm_Figure4 %>%
tbl_summary(
by = Figure.4,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 4,
) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Treatment Groups**") %>%
bold_labels()
Vascular Involvement: Demographic Table Neoadjuvant Multiagent Chemo vs Postop Chemo P value omitted for tnm clinical T
Sm_Figure3 %>%
tbl_summary(
by = Figure.3,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,
missing_text = "(Unknown)"
) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 4)) %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Treatment Groups**") %>%
bold_labels()
Vascular Involvement: Demographic Table Neoadjuvant Multiagent Vhemo vs Postop Chemo
This was the final version Code used below:
Figure3Draft <-
read.csv("figure3.csv", header = T, sep = ",")
remove(DemTable2)
Sm_Figure3 <-
Figure3Draft %>%
select(AGE, SEX, RACE.2, INSURANCE_STATUS, Regions.2, Income, No.High.School.Degree, Population.Density, CDCC_TOTAL_BEST, TNM_CLIN_T, TNM_CLIN_N.2, Downstaging.Figure.3, Surgery.Type.2, Surgical.Margins, Tumor.Grade, Figure.3)
Sm_Figure3[Sm_Figure3$TNM_CLIN_T == "",] <- NA
Sm_Figure3Draft2 <- na.omit(Sm_Figure3$TNM_CLIN_T)
install.packages("labelled")
library(gtsummary)
library(labelled)
library(dplyr)
var_label(Sm_Figure3$Population.Density) <- "Population Density"
str(DemoTable1)
Sm_DemoTable1[Sm_DemoTable1 =="NA"] <- "Unknown"
DemoTable1PDF <-
sm_figu
Sm_Figure3 %>%
tbl_summary(
by = Figure.3,
statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
add_overall() %>%
add_n() %>%
modify_header(label ~ "**Variable**") %>%
modify_spanning_header(c("stat_1", "stat_2") ~ "**Treatment Groups**") %>%
bold_labels()
HTML
Vascular Involvement Demographic table 2
HTML
Demographic Table 1