Control 1: Manejo de Base de Datos con data.table + rmarkdown

Este control tiene como finalidad evaluar el trabajo de base de datos. Se evaluará la correcta ejecución del código y el uso eficiente de las herramientas de codificación entregadas.

Formato de rmarkdown

El formato de respuesta es el siguiente:

  1. Antes de la respuesta debes agregar un encabezado de tercer nivel (###) con P y el número de pregunta.
  2. Abajo del encabezado, debe estar escrita la pregunta.
  3. Agregar la línea de código.
  4. Agregar el output de ser necesario.
  5. Si requieres agregar alguna respuesta analítica, agregar al final de la pregunta (después del output).
  6. El título del informe debe ser: Control 1.
  7. En el encabezado YAML deben estar presentes todos los integrantes del grupo.

El formato tiene un puntaje asignado dentro de la nota. (3 puntos)

Importante: Deben ser suprimidos los mensajes y warnings del informe.

Reglas de Envío

  1. Este trabajo debe ser publicado en el rpubs personal de algún integrante del grupo.
  2. Se habilitará en webcursos un apartado para que algún integrante del grupo envíe el link (no el archivo .rmd) del control publicada en su rpubs.
  3. El plazo para enviar el link de su control (no su perfil de rpubs) es hasta finalizar la clase.

Egresos Hospitalarios 2017

El Ministerio de Salud (MINSAL) necesita realizar un levantamiento de información para analizar la situación en la que se encuentran sus hospitales y las clínicas del país. Esta información es crucial para entender cómo opera la atención en los diferentes centros de salud. Es por esto, que el MINSAL lo contrató como analista de datos para preparar un informe descriptivo sobre el sistema de atención de hospitales y clínicas a nivel nacional.

P1

Limpie el enviroment para comenzar desde cero. (1 punto)

rm(list=ls())

P2

Cargue los paquetes necesarios para trabajar con DT. (1 punto)

library(data.table)

P3

Abra las bases de datos egresos y Enfermedades. (3 puntos)

Pista: Para los archivos .RDS utilice la función readRDS. Ojo que la base de datos no se abrirá como un DT, por lo tanto tiene que transformarla.

egresos<- readRDS("egresos.RDS")
egresos<-as.data.table(egresos)

Enfermedades<- fread("Enfermedades.csv")

P4

Muestre cuántas personas de cada región hay en la base egresos. (3 puntos)

egresos[,.N,by=REGION]
##     REGION      N
##  1:      2  47329
##  2:     13 516477
##  3:     14  23380
##  4:     99   4804
##  5:      5 128170
##  6:     15  18023
##  7:      1  26275
##  8:      6  46286
##  9:     10  64371
## 10:     12  20623
## 11:      3  15970
## 12:      8  18543
## 13:      9  18721
## 14:      7  16674
## 15:      4  51373
## 16:    591    156
## 17:     11   1707
## 18:   2000    240
## 19:     51     72
## 20:     54     84

P5

Solucione el problema de la pregunta anterior y considere solo las 15 regiones de Chile. (3 puntos)

egresos<-egresos[REGION<=15]

P6

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 días de vida de una persona y elimine aquellas observaciones que tengan más días de estadía en un hospital que días de vida. (5 puntos)

egresos[,dias_vida:= EDAD*365]

egresos<-egresos[!DIAS_ESTAD>dias_vida]

P7

¿Cuántas personas hay según previsión en la base egresos? (3 puntos)

egresos[,.N, by=Prevision]
##        Prevision      N
## 1:        FONASA 649267
## 2:        ISAPRE 225594
## 3:       DIPRECA  21204
## 4:     CAPREDENA  20925
## 5:          OTRA  20664
## 6: SIN PREVISION  23624
## 7:      IGNORADA   1834

P8

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. (5 puntos)

egresos[,.(Edad_promedio=mean(EDAD),Dias_promedio=mean(DIAS_ESTAD)), by=.(Prevision,SEXO)]
##         Prevision   SEXO Edad_promedio Dias_promedio
##  1:        FONASA Hombre      48.12688      8.335111
##  2:        FONASA  Mujer      42.38479      5.500891
##  3:        ISAPRE Hombre      41.78297      3.250066
##  4:        ISAPRE  Mujer      40.16749      2.992523
##  5:       DIPRECA  Mujer      50.52642      5.163402
##  6:     CAPREDENA  Mujer      53.71241      7.666363
##  7:          OTRA  Mujer      44.34956      4.966185
##  8: SIN PREVISION  Mujer      40.27639      2.936536
##  9: SIN PREVISION Hombre      41.22145      5.380432
## 10:     CAPREDENA Hombre      53.25608      7.920968
## 11:          OTRA Hombre      45.56299      6.449604
## 12:       DIPRECA Hombre      50.53459      6.226464
## 13:      IGNORADA Hombre      41.42471      9.406673
## 14:      IGNORADA  Mujer      37.87586      5.674483
## 15:        FONASA   Otro      29.00000     11.250000
## 16: SIN PREVISION   Otro      52.00000      6.000000

P9

Cree un nuevo objeto que corresponda a un merge entre la base egresos y Enfermedades. (5 puntos)

Pista: la variable identificador en la base egresos se llama Tipo_Tratamiento y en la base Enfermedades se llama Codigo. Por lo tanto, puede que renombrar una variable para que queden con el mismo nombre.

names(egresos)[1]<-"Codigo"

base_nueva<-merge(egresos,Enfermedades, by="Codigo")

P10

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. (8 puntos)

Pista: Para esto puede crear un objeto que contenga el total de enfermos por región, otro objeto que contenga el total de enfermos por tratamiento y región y luego unirlos para obtener el porcentaje.

Tabla1<-base_nueva[,.N,by=REGION]

Tabla2<-base_nueva[,.N,by=.(REGION,Tratamiento)]

TABLA<- merge(Tabla1,Tabla2, by="REGION")

TABLA[,Porcentaje:=(N.y/N.x)*100]

TABLA
##      REGION   N.x
##   1:      1 25282
##   2:      1 25282
##   3:      1 25282
##   4:      1 25282
##   5:      1 25282
##  ---             
## 266:     15 17308
## 267:     15 17308
## 268:     15 17308
## 269:     15 17308
## 270:     15 17308
##                                                                                                                 Tratamiento
##   1:                                                                        Ciertas enfermedades infecciosas y parasitarias
##   2:                                                                                                             Neoplasias
##   3: Enfermedades de la sangre y de los órganos hematopoyéticos y otros trastornos que afectan el mecanismo de la inmunidad
##   4:                                                                   Enfermedades endocrinas, nutricionales y metabólicas
##   5:                                                                               Trastornos mentales y del comportamiento
##  ---                                                                                                                       
## 266:                                                                                            Embarazo, parto y puerperio
## 267:                                                       Malformaciones congénitas, deformidades y anomalías cromosómicas
## 268:                        Síntomas, signos y hallazgos anormales clínicos y de laboratorio, no clasificados en otra parte
## 269:                                           Traumatismos, envenenamientos y algunas otras consecuencias de causa externa
## 270:                                      Factores que influyen en el estado de salud y contacto con los servicios de salud
##       N.y Porcentaje
##   1:  414  1.6375287
##   2:  744  2.9428052
##   3:  884  3.4965588
##   4:  693  2.7410806
##   5:  889  3.5163357
##  ---                
## 266: 3584 20.7071874
## 267:  128  0.7395424
## 268:  155  0.8955396
## 269: 1810 10.4575919
## 270:  568  3.2817194

P11

¿En qué región se atienden los individuos que tienen que realizarse cirugías y de qué región provienen?. (5 puntos)

Pista: Para responder esta pregunta, primero debe identificar la cantidad de personas que se realizan intervenciones quirúrgicas según su región y la región del establecimiento donde se atienden.

Movimientos<-base_nueva[INTERV_Q=="Sí",.N, by=.(REGION,CodRegion_ESTAB)]

P12

¿Las personas suelen atenderse en sus regiones?. Para poder responder esta pregunta, es recomendable modificar el objeto anterior y así poder visualizar mejor la información. Para esto, se aconseja realizar un reshape y reemplazar los NApor valores 0. (5 puntos)

Movimientos<-dcast(Movimientos,REGION~CodRegion_ESTAB)

Movimientos[is.na(Movimientos)]<-0

Movimientos
##     REGION     1     2    3     4     5     6    7    8    9    10  11   12
##  1:      1 12478    96    4    14    75     0    1    0    0     1   0    0
##  2:      2    53 22553   13    33    84     9    2    1    0     3   0    1
##  3:      3     1    98 6505   179    62     5    0    0    0     0   0    0
##  4:      4     7    47   35 23801   639     4    0    0    0     4   0    0
##  5:      5     2    11    3    10 58377    30    3    1    0    21   3    3
##  6:      6     2     0    3     2   164 19303   28    0    0     5   1    1
##  7:      7     0     9    4     1    46   216 4237   11    1     8   1    0
##  8:      8     4    14    5     3    97    10    2 3154    8    30   0    1
##  9:      9     1     8    1     4    18    14    1    3 4586   146   1    1
## 10:     10     0     1    0     1    64    11    0    2    0 25705   6    9
## 11:     11     0     0    0     1     1     0    0    0    0    24 468    0
## 12:     12     0     0    0     0    63     0    0    2    0    45   4 9700
## 13:     13    17    34   19    47   692   173   11    4    4   171   7    6
## 14:     14     0     1    1     0    14     1    0    2    0   303   1    1
## 15:     15    53    42    0     1    21     0    0    0    0     2   0    0
##         13   14   15
##  1:   1010    0   13
##  2:   2384    0    2
##  3:   1090    0    0
##  4:   2706    4    1
##  5:   5348    3    0
##  6:   4748    3    0
##  7:   4178    1    0
##  8:   1789   11    0
##  9:   1266   91    0
## 10:   1336  292    0
## 11:     34    2    0
## 12:    584    6    0
## 13: 267645   25    5
## 14:    405 8618    0
## 15:    567    1 7999

Bonus:

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? (5 puntos)

Movimientos1<-base_nueva[INTERV_Q=="Sí" & Prevision=="FONASA",.N, by=.(REGION,CodRegion_ESTAB)]

Movimientos1<-dcast(Movimientos1,REGION~CodRegion_ESTAB)

Movimientos1[is.na(Movimientos1)]<-0

Movimientos1
##     REGION    1     2    3     4     5     6    7    8    9    10  11   12
##  1:      1 8169    43    2     5    18     0    1    0    0     1   0    0
##  2:      2   18 12693   11    17    24     7    1    1    0     2   0    1
##  3:      3    1    69 5074    97    43     2    0    0    0     0   0    0
##  4:      4    3    18   16 19988   443     3    0    0    0     3   0    0
##  5:      5    1     1    1     9 41530    13    2    1    0    14   2    3
##  6:      6    0     0    0     0   142 15410   20    0    0     3   0    1
##  7:      7    0     1    2     0    27   159 3934   11    0     5   1    0
##  8:      8    2     3    1     3    29     8    1 3076    7    23   0    1
##  9:      9    0     2    1     3     7    13    1    3 4291   125   1    1
## 10:     10    0     0    0     1    18    10    0    2    0 18136   4    9
## 11:     11    0     0    0     0     1     0    0    0    0    21 428    0
## 12:     12    0     0    0     0    10     0    0    2    0    34   4 6297
## 13:     13   10     7   12    28   406   135    9    4    2   119   2    4
## 14:     14    0     1    1     0     6     1    0    2    0   108   0    0
## 15:     15   15    18    0     1     9     0    0    0    0     2   0    0
##         13   14   15
##  1:    354    0    3
##  2:    521    0    1
##  3:    405    0    0
##  4:   1040    2    0
##  5:   1781    2    0
##  6:   2063    3    0
##  7:   1813    1    0
##  8:    689   11    0
##  9:    506   69    0
## 10:    413  166    0
## 11:     21    2    0
## 12:    134    4    0
## 13: 145696   19    0
## 14:    134 7262    0
## 15:    224    1 6872