Limpie el enviroment para comenzar a trabajar.
rm(list=ls())
El codigo anterior hace remove el list
Cargue los paquetes necesarios para trabjar con DT.
library(data.table)
En caso de recien partir usando Rstudio, hacemos install.packages(x), al no ser el caso, cargamos directamente data.table
Abra las bases de datos egresos y Enfermedades
egresos <- readRDS("egresos.RDS")
enfermedades <- fread("Enfermedades.csv")
Anteriormente con la función readRDS y fread cargamos las bases de dato. Luego vemos su clase, y la transformamos en data.table en caso de ser necesario
class(egresos)
## [1] "data.frame"
class(enfermedades)
## [1] "data.table" "data.frame"
egresos <- as.data.table(egresos)
enfermedades <- as.data.table(enfermedades)
Enfermedades estaba como data.table, pero egresos no. para asegurar transformamos ambas nuevamente pero finalmente direccionando el codigo a egresos, que estaba en data.frame
Muestre cúantas personas de cada región hay en la base egresos
names(egresos)
## [1] "Tipo_Tratamiento" "ESTAB" "Seremi" "ServicioSalud"
## [5] "SEXO" "EDAD" "PREVI" "BENEF"
## [9] "MOD" "COMUNA" "REGION" "SERV_RES"
## [13] "FECHA_EGR" "SERC_EGR" "DIAG1" "DIAG2"
## [17] "DIAS_ESTAD" "COND_EGR" "INTERV_Q" "Prevision"
## [21] "CodRegion_ESTAB" "Tipo_ESTAB"
personas_por_region <- egresos[, .N, by = "REGION"]
Vemos la variable names, para luego calulcar el numero por REGIONES.
Repita la pregunta anterior, pero esta vez considerando solo a las 15 regiones de Chile.
Aqui debemos filtrar toda region que sea igual o menor a 15.
regiones_chile_filtro <- egresos[, REGION <= 15, by= "REGION"]
regiones_chile <- regiones_chile_filtro[V1==TRUE]
regiones_chile
## REGION V1
## 1: 2 TRUE
## 2: 13 TRUE
## 3: 14 TRUE
## 4: 5 TRUE
## 5: 15 TRUE
## 6: 1 TRUE
## 7: 6 TRUE
## 8: 10 TRUE
## 9: 12 TRUE
## 10: 3 TRUE
## 11: 8 TRUE
## 12: 9 TRUE
## 13: 7 TRUE
## 14: 4 TRUE
## 15: 11 TRUE
Existe una inconsistencia en la base de datos egresos, ya que hay personas que tienen más días de estadía en el hospital que días vividos. Por lo tanto, debemos eliminar estos casos de la base de datos. Para esto, cree una nueva variable que corresponda a los dias de vida de una persona y elimine aquellas observaciones que tengan más días de estadia en un hospital que días de vida.
is.numeric(egresos$edad)
## [1] FALSE
egresos$edad <- as.numeric(egresos$edad)
vida <- egresos[,vida:= EDAD*365]
vida[DIAS_ESTAD > EDAD, algo_anda_mal:= 0]
vida_final <- vida[!algo_anda_mal == 1]
finalmente lo que se hizo, fue crear variable vida de edad, y comprarar edad con dias en el lugar. con esto se crea una nueva variable que nos dice si hay algo extraño con lo que se nos pide en la pregunta, y se le da valor de 0 si esque si, y de 1 si esque no. Luego filtramos con esa base para tener la nueva tabla.
¿Cuántas personas hay según previsión en la base egresos?
names(egresos)
## [1] "Tipo_Tratamiento" "ESTAB" "Seremi" "ServicioSalud"
## [5] "SEXO" "EDAD" "PREVI" "BENEF"
## [9] "MOD" "COMUNA" "REGION" "SERV_RES"
## [13] "FECHA_EGR" "SERC_EGR" "DIAG1" "DIAG2"
## [17] "DIAS_ESTAD" "COND_EGR" "INTERV_Q" "Prevision"
## [21] "CodRegion_ESTAB" "Tipo_ESTAB" "edad" "vida"
## [25] "algo_anda_mal"
personas_previ <- egresos[, .(.N), by = "PREVI"]
personas_previ[.N]
## PREVI N
## 1: 9 3278
Creamos un data.table para ver cuantas personas por distinta PREVI y finalmente sumamos todas las personas de PREVI
Realice un resumen de las características de las personas de la base egresos según su previsión y sexo. Este resumen debe contener: edad promedio y días de estadía promedio en un hospital.
resumen1 <- egresos[, .(mean(EDAD), mean(DIAS_ESTAD)), by = .(SEXO, EDAD)]
Lo anterior nos crea un resumen con el promedio de EDAD y DIAS_ESTAD de cada SEXO y su EDAD
Cree un nuevo objeto que corresponda a un merge entre la base egresos y Enfermedades.
names(egresos)[1] <- "Codigo"
nb <- merge(x = egresos, y = enfermedades, by= "Codigo")
Se hace merge la base de datos cambiando Tipo_Tratamiento por Codigo, asi tenemos aquella variable en comun. nb = nueva base
Ahora queremos identificar, con este nuevo objeto, la proporción de enfermos que hay por región y tipo de tratamiento, es decir, del total de enfermos por región cuántos corresponden a cada tratamiento.
# Crear total enfermos region, otro enfermos por tratamiento y region
trt <- nb[,.N, by=.(REGION, Tratamiento)]
aqui calculamos el numero, by REGION y TRATAMIENTO trt == total region tratamiento
¿En qué región se atienden quienes tienen que realizarse cirugías y de qué región provienen?
Debemos filtrar quienes se tienen que hacer cirugias, en que region lo hacen, y de donde vienen
filtro1 <- nb[INTERV_Q == "Sí", .(REGION, CodRegion_ESTAB)]
Aqui estamos pidiendole a nb que si hay interv_q nos entregue un data table con el # de la persona que resive la INTERV_Q y de que Region es, y en que region obtiene su intervención.
¿Las personas suelen atenderse en la misma región donde viven? Para respoder esta pregunta, puedes modificar el objeto creado en la pregunta 11 y así podrás visualizar mejor la información. ¿Cuántas personas se realizan intervenciones quirúrgicas en su región y cuantas en otra?
filtro2 <- filtro1[, MISMO_LUGAR:= ifelse (REGION == CodRegion_ESTAB, 1, 0)]
#CALCULAMOS QUIENES SI
filtro2[MISMO_LUGAR == 1, .N]
## [1] 478322
#CALCULAMOS QUIENES NO
filtro2[MISMO_LUGAR == 0, .N]
## [1] 35829
Respuesta pregunta anterior : Las personas suelen atenderse en la misma region que vive. Esto se puede ver con una diferencia de 442,493. Donde 478,322 personas se atienden en su region, mientras que 35,829 en una region distinta.
Realice el mismo ejercicio de la pregunta 11 y 12, pero considerando a aquellas personas que pertenecen a Fonasa y se realizan intervenciones quirúrgicas.¿Cambia en algo el análisis con respecto a las preguntas anteriores?
filtro3 <- nb[INTERV_Q == "Sí" & Prevision == "FONASA", .(REGION, CodRegion_ESTAB)]
filtro4 <- filtro3[, MISMO_LUGAR:= ifelse (REGION == CodRegion_ESTAB, 1, 0)]
#CALCULAMOS QUIENES SI
filtro4[MISMO_LUGAR == 1, .N]
## [1] 300832
#CALCULAMOS QUIENES NO
filtro4[MISMO_LUGAR == 0, .N]
## [1] 14635
Respuesta preugnta BONUS: Comparando la repsuesta de la pregunta BONUS con la anterior vemos, en primer lugar, que quienes se hacen una intervención y tienen fonasa y se quedan en su region pertenecen al numero mayor de 300,832 , mientras que los que no pertenecen a la minoria de 14,635.
Del total de la población, esta disminuye de 514,151 a 315,467 por lo que nos damos cuenta que es menor la cantidad de personas que tienen FONASA.