Migrando datos a R

setwd("D:/Dropbox/MsC UABC/2o Semestre/Projects/Ceci/4. Reproducible Script")
There were 50 or more warnings (use warnings() to see the first 50)
#Cargando los archivos de SPSS
library(haven)
spss <- read_sav("D:/Dropbox/MsC UABC/2o Semestre/Projects/Ceci/1. Raw Data/tumor parrilla costal operados 1.sav")
#Cargando los archivos de EXCEL
library(readxl)
excel <- read_excel("D:/Dropbox/MsC UABC/2o Semestre/Projects/Ceci/2. Tidy Data/Base de Datos 2.xlsx", 
    sheet = "Sheet1")

Exploración inicial y ajustes

#Conviertiendo variables leídas como numéricas a caracteres-
excel$`1RO, 2DO` <- as.character(excel$`1RO, 2DO`)
excel$EDAD[11] <- as.character(0.75)
excel$EDAD[21] <- as.character(0.75)
#Convirtiendo variables leídas como caracteres a numéricas
excel$EDAD <- as.numeric(excel$EDAD)
#Eliminando los números,nombres y NSS siguiendo los requerimientos bioéticos
excel <- excel[,-1:-3]
#Generación del Reporte de Calidad de Datos
source("QOfCategoricalF.R")
DQRcat <-QOfCategoricalF(excel[,-5])
print(DQRcat)
write.csv(DQRcat, file = "DQR.csv")

Observaciones iniciales derivadas del Reporte de Calidad de Datos

  • Variables con problemas de calidad en sus datos, se recomienda revisarlas a detalle y corroborar el valor clínico que podrían tener considerando las debilidades desde el punto de vista de análisis de datos:
    • Valores Faltantes: TAC (15, 46.875%), Arcos Costales (10, 31.25%), días de sonda (17, 46.875%), Causa de Muerte (15, 46.875%), libre de enfermedad (10, 31.25%), complicacion (22, 68.75%)
    • Cardinalidad:

Visualización de datos

Tamaño de la Tumoración y Supervivencia

tumFreq <- as.data.frame(table(excel$`TAMAÑO AL DX`, excel$MUERTE))
colnames(tumFreq) <- c("Tamaño Tumoral", "Muerte", "Frecuencia")
write.csv(tumFreq, file = "tumFreq.csv")
library(ggplot2)
tumor <- c(rep("<5cm",6),rep(">10cm",16),rep(">5 y <10cm",10))
muerte <- excel$MUERTE
  
df <- data.frame(tumor,muerte)
ggplot(df, aes(tumor, ..count..)) +
  geom_bar(aes(fill = muerte), position = "dodge")+
  ggtitle("Tamaño del Tumor al Dx y Supervivencia") +
  theme(plot.title = element_text(hjust = 0.5)) +
  xlab("Tamaño del Tumor") +
  ylab("Cantidad")

Bordes y Supervivencia

bordSup <- as.data.frame(table(excel$MARGENES, excel$MUERTE))
colnames(bordSup) <- c("Bordes de Resección", "Muerte", "Frecuencia")
write.csv(bordSup, file = "bordSup.csv")
library(ggplot2)
margen <- excel$MARGENES
muerte <- excel$MUERTE
  
df <- data.frame(margen,muerte)
ggplot(df, aes(margen, ..count..)) +
  geom_bar(aes(fill = muerte), position = "dodge")+
  ggtitle("Márgenes de la Resección y Supervivencia") +
  theme(plot.title = element_text(hjust = 0.5)) +
  xlab("Márgenes") +
  ylab("Cantidad")

Resección y Supervivencia

library(ggplot2)
reseccion <- excel$QX
muerte <- excel$MUERTE
  
df <- data.frame(reseccion,muerte)
ggplot(df, aes(muerte, ..count..)) +
  geom_bar(aes(fill = reseccion), position = "dodge")+
  ggtitle("Tipo de Resección y Supervivencia") +
  theme(plot.title = element_text(hjust = 0.5)) +
  xlab("Márgenes") +
  ylab("Cantidad")

Tipo de Malla Utilizada por Tamaño de Resección

mallaRec <- as.data.frame(table(excel$MALLA, excel$QX))
colnames(mallaRec) <- c("Tipo de Malla", "Resección", "Frecuencia")
write.csv(mallaRec, file = "mallaRec.csv")

Diagnósticos y Frecuencias

dxFreq<-as.data.frame(table(excel$DX))
colnames(dxFreq) <- c("Diagnóstico", "Frecuencia")
write.csv(dxFreq, file = "dxFreq.csv")

METS, MARGENES y Supervivencia

MMS<-as.data.frame(table(excel$`METS AL DX`, excel$MARGENES, excel$MUERTE))
colnames(MMS) <- c("Lugar de Metástasis", "Bordes de Resección", "Muerte", "Frecuencia")
write.csv(MMS, file = "MMS.csv")
MMS
LS0tDQp0aXRsZTogIkFuw6FsaXNpcyBkZSBEYXRvcyBFeGNlbGVudMOtc2ltYSBHYWxlbmEgQ2VjaSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMjTWlncmFuZG8gZGF0b3MgYSBSDQoNCmBgYHtyfQ0Kc2V0d2QoIkQ6L0Ryb3Bib3gvTXNDIFVBQkMvMm8gU2VtZXN0cmUvUHJvamVjdHMvQ2VjaS80LiBSZXByb2R1Y2libGUgU2NyaXB0IikNCg0KI0NhcmdhbmRvIGxvcyBhcmNoaXZvcyBkZSBTUFNTDQpsaWJyYXJ5KGhhdmVuKQ0Kc3BzcyA8LSByZWFkX3NhdigiRDovRHJvcGJveC9Nc0MgVUFCQy8ybyBTZW1lc3RyZS9Qcm9qZWN0cy9DZWNpLzEuIFJhdyBEYXRhL3R1bW9yIHBhcnJpbGxhIGNvc3RhbCBvcGVyYWRvcyAxLnNhdiIpDQoNCg0KI0NhcmdhbmRvIGxvcyBhcmNoaXZvcyBkZSBFWENFTA0KbGlicmFyeShyZWFkeGwpDQpleGNlbCA8LSByZWFkX2V4Y2VsKCJEOi9Ecm9wYm94L01zQyBVQUJDLzJvIFNlbWVzdHJlL1Byb2plY3RzL0NlY2kvMi4gVGlkeSBEYXRhL0Jhc2UgZGUgRGF0b3MgMi54bHN4IiwgDQogICAgc2hlZXQgPSAiU2hlZXQxIikNCg0KYGBgDQoNCiMjRXhwbG9yYWNpw7NuIGluaWNpYWwgeSBhanVzdGVzDQpgYGB7cn0NCiNDb252aWVydGllbmRvIHZhcmlhYmxlcyBsZcOtZGFzIGNvbW8gbnVtw6lyaWNhcyBhIGNhcmFjdGVyZXMtDQpleGNlbCRgMVJPLCAyRE9gIDwtIGFzLmNoYXJhY3RlcihleGNlbCRgMVJPLCAyRE9gKQ0KZXhjZWwkRURBRFsxMV0gPC0gYXMuY2hhcmFjdGVyKDAuNzUpDQpleGNlbCRFREFEWzIxXSA8LSBhcy5jaGFyYWN0ZXIoMC43NSkNCg0KI0NvbnZpcnRpZW5kbyB2YXJpYWJsZXMgbGXDrWRhcyBjb21vIGNhcmFjdGVyZXMgYSBudW3DqXJpY2FzDQpleGNlbCRFREFEIDwtIGFzLm51bWVyaWMoZXhjZWwkRURBRCkNCg0KI0VsaW1pbmFuZG8gbG9zIG7Dum1lcm9zLG5vbWJyZXMgeSBOU1Mgc2lndWllbmRvIGxvcyByZXF1ZXJpbWllbnRvcyBiaW/DqXRpY29zDQoNCmV4Y2VsIDwtIGV4Y2VsWywtMTotM10NCg0KI0dlbmVyYWNpw7NuIGRlbCBSZXBvcnRlIGRlIENhbGlkYWQgZGUgRGF0b3MNCnNvdXJjZSgiUU9mQ2F0ZWdvcmljYWxGLlIiKQ0KRFFSY2F0IDwtUU9mQ2F0ZWdvcmljYWxGKGV4Y2VsWywtNV0pDQpwcmludChEUVJjYXQpDQoNCndyaXRlLmNzdihEUVJjYXQsIGZpbGUgPSAiRFFSLmNzdiIpDQpgYGANCg0KIyMjT2JzZXJ2YWNpb25lcyBpbmljaWFsZXMgZGVyaXZhZGFzIGRlbCBSZXBvcnRlIGRlIENhbGlkYWQgZGUgRGF0b3MNCg0KICAtIFZhcmlhYmxlcyBjb24gcHJvYmxlbWFzIGRlIGNhbGlkYWQgZW4gc3VzIGRhdG9zLCBzZSByZWNvbWllbmRhIHJldmlzYXJsYXMgYSBkZXRhbGxlIHkgY29ycm9ib3JhciBlbCB2YWxvciBjbMOtbmljbyBxdWUgcG9kcsOtYW4gdGVuZXIgY29uc2lkZXJhbmRvIGxhcyBkZWJpbGlkYWRlcyBkZXNkZSBlbCBwdW50byBkZSB2aXN0YSBkZSBhbsOhbGlzaXMgZGUgZGF0b3M6DQogICAgLSAqKlZhbG9yZXMgRmFsdGFudGVzKio6IGBUQUNgICgxNSwgYHIgKDE1LzMyKSoxMDBgJSksIGBBcmNvcyBDb3N0YWxlc2AgKDEwLCBgciAoMTAvMzIpKjEwMGAlKSwgYGTDrWFzIGRlIHNvbmRhYCAoMTcsIGByICgxNS8zMikqMTAwYCUpLCBgQ2F1c2EgZGUgTXVlcnRlYCAoMTUsIGByICgxNS8zMikqMTAwYCUpLCBgbGlicmUgZGUgZW5mZXJtZWRhZGAgKDEwLCBgciAoMTAvMzIpKjEwMGAlKSwgYGNvbXBsaWNhY2lvbmAgKDIyLCBgciAoMjIvMzIpKjEwMGAlKQ0KICAgIC0gKipDYXJkaW5hbGlkYWQqKjogDQogICAgDQogICAgDQojI1Zpc3VhbGl6YWNpw7NuIGRlIGRhdG9zDQoNCiMjVGFtYcOxbyBkZSBsYSBUdW1vcmFjacOzbiB5IFN1cGVydml2ZW5jaWENCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KdHVtRnJlcSA8LSBhcy5kYXRhLmZyYW1lKHRhYmxlKGV4Y2VsJGBUQU1Bw5FPIEFMIERYYCwgZXhjZWwkTVVFUlRFKSkNCmNvbG5hbWVzKHR1bUZyZXEpIDwtIGMoIlRhbWHDsW8gVHVtb3JhbCIsICJNdWVydGUiLCAiRnJlY3VlbmNpYSIpDQp3cml0ZS5jc3YodHVtRnJlcSwgZmlsZSA9ICJ0dW1GcmVxLmNzdiIpDQoNCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCg0KdHVtb3IgPC0gYyhyZXAoIjw1Y20iLDYpLHJlcCgiPjEwY20iLDE2KSxyZXAoIj41IHkgPDEwY20iLDEwKSkNCm11ZXJ0ZSA8LSBleGNlbCRNVUVSVEUNCiAgDQpkZiA8LSBkYXRhLmZyYW1lKHR1bW9yLG11ZXJ0ZSkNCg0KZ2dwbG90KGRmLCBhZXModHVtb3IsIC4uY291bnQuLikpICsNCiAgZ2VvbV9iYXIoYWVzKGZpbGwgPSBtdWVydGUpLCBwb3NpdGlvbiA9ICJkb2RnZSIpKw0KICBnZ3RpdGxlKCJUYW1hw7FvIGRlbCBUdW1vciBhbCBEeCB5IFN1cGVydml2ZW5jaWEiKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogIHhsYWIoIlRhbWHDsW8gZGVsIFR1bW9yIikgKw0KICB5bGFiKCJDYW50aWRhZCIpDQoNCmBgYA0KDQojI0JvcmRlcyB5IFN1cGVydml2ZW5jaWENCg0KYGBge3J9DQpib3JkU3VwIDwtIGFzLmRhdGEuZnJhbWUodGFibGUoZXhjZWwkTUFSR0VORVMsIGV4Y2VsJE1VRVJURSkpDQpjb2xuYW1lcyhib3JkU3VwKSA8LSBjKCJCb3JkZXMgZGUgUmVzZWNjacOzbiIsICJNdWVydGUiLCAiRnJlY3VlbmNpYSIpDQp3cml0ZS5jc3YoYm9yZFN1cCwgZmlsZSA9ICJib3JkU3VwLmNzdiIpDQpgYGANCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQoNCm1hcmdlbiA8LSBleGNlbCRNQVJHRU5FUw0KbXVlcnRlIDwtIGV4Y2VsJE1VRVJURQ0KICANCg0KZGYgPC0gZGF0YS5mcmFtZShtYXJnZW4sbXVlcnRlKQ0KDQpnZ3Bsb3QoZGYsIGFlcyhtYXJnZW4sIC4uY291bnQuLikpICsNCiAgZ2VvbV9iYXIoYWVzKGZpbGwgPSBtdWVydGUpLCBwb3NpdGlvbiA9ICJkb2RnZSIpKw0KICBnZ3RpdGxlKCJNw6FyZ2VuZXMgZGUgbGEgUmVzZWNjacOzbiB5IFN1cGVydml2ZW5jaWEiKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogIHhsYWIoIk3DoXJnZW5lcyIpICsNCiAgeWxhYigiQ2FudGlkYWQiKQ0KDQpgYGANCg0KIyNSZXNlY2Npw7NuIHkgU3VwZXJ2aXZlbmNpYQ0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCg0KcmVzZWNjaW9uIDwtIGV4Y2VsJFFYDQptdWVydGUgPC0gZXhjZWwkTVVFUlRFDQogIA0KDQpkZiA8LSBkYXRhLmZyYW1lKHJlc2VjY2lvbixtdWVydGUpDQoNCmdncGxvdChkZiwgYWVzKG11ZXJ0ZSwgLi5jb3VudC4uKSkgKw0KICBnZW9tX2JhcihhZXMoZmlsbCA9IHJlc2VjY2lvbiksIHBvc2l0aW9uID0gImRvZGdlIikrDQogIGdndGl0bGUoIlRpcG8gZGUgUmVzZWNjacOzbiB5IFN1cGVydml2ZW5jaWEiKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArDQogIHhsYWIoIk3DoXJnZW5lcyIpICsNCiAgeWxhYigiQ2FudGlkYWQiKQ0KYGBgDQoNCiMjVGlwbyBkZSBNYWxsYSBVdGlsaXphZGEgcG9yIFRhbWHDsW8gZGUgUmVzZWNjacOzbg0KDQpgYGB7cn0NCm1hbGxhUmVjIDwtIGFzLmRhdGEuZnJhbWUodGFibGUoZXhjZWwkTUFMTEEsIGV4Y2VsJFFYKSkNCmNvbG5hbWVzKG1hbGxhUmVjKSA8LSBjKCJUaXBvIGRlIE1hbGxhIiwgIlJlc2VjY2nDs24iLCAiRnJlY3VlbmNpYSIpDQp3cml0ZS5jc3YobWFsbGFSZWMsIGZpbGUgPSAibWFsbGFSZWMuY3N2IikNCmBgYA0KDQoNCiMjRGlhZ27Ds3N0aWNvcyB5IEZyZWN1ZW5jaWFzDQoNCmBgYHtyfQ0KZHhGcmVxPC1hcy5kYXRhLmZyYW1lKHRhYmxlKGV4Y2VsJERYKSkNCmNvbG5hbWVzKGR4RnJlcSkgPC0gYygiRGlhZ27Ds3N0aWNvIiwgIkZyZWN1ZW5jaWEiKQ0Kd3JpdGUuY3N2KGR4RnJlcSwgZmlsZSA9ICJkeEZyZXEuY3N2IikNCmBgYA0KDQojI01FVFMsIE1BUkdFTkVTIHkgU3VwZXJ2aXZlbmNpYQ0KDQpgYGB7cn0NCk1NUzwtYXMuZGF0YS5mcmFtZSh0YWJsZShleGNlbCRgTUVUUyBBTCBEWGAsIGV4Y2VsJE1BUkdFTkVTLCBleGNlbCRNVUVSVEUpKQ0KY29sbmFtZXMoTU1TKSA8LSBjKCJMdWdhciBkZSBNZXTDoXN0YXNpcyIsICJCb3JkZXMgZGUgUmVzZWNjacOzbiIsICJNdWVydGUiLCAiRnJlY3VlbmNpYSIpDQp3cml0ZS5jc3YoTU1TLCBmaWxlID0gIk1NUy5jc3YiKQ0KTU1TDQpgYGANCg0K