Librerías

Para realizar la manipulación de los datos cargamos la librería tidyverse la cual nos permite manipular nuestros datos.

Lectura y verificación de datos

Cargamos la base de datos a un data frame llamado df_Muertes:

Revisamos la estructura del data frame:

## 'data.frame':    41867 obs. of  10 variables:
##  $ anio          : int  2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 ...
##  $ coddivipola   : int  15001 15001 99524 50001 50001 50001 50001 50006 50001 50001 ...
##  $ sexo          : Factor w/ 3 levels "Femenino","Indeterminado",..: 3 3 3 3 3 1 3 3 3 3 ...
##  $ edad          : int  22 40 20 19 31 51 20 31 28 35 ...
##  $ estcivil      : int  5 5 5 9 9 1 5 6 2 1 ...
##  $ estcivilnombre: Factor w/ 7 levels "Dos o mas años conviviendo",..: 5 5 5 7 7 1 5 3 2 1 ...
##  $ niveledu      : int  9 2 3 99 2 2 2 3 99 2 ...
##  $ niveledunombre: Factor w/ 14 levels "Basica primaria",..: 11 1 2 12 1 1 1 2 12 1 ...
##  $ cbas1         : Factor w/ 358 levels "X610","X614",..: 39 158 300 163 163 163 186 158 158 178 ...
##  $ nbas1         : Factor w/ 154 levels "","AGRESION CON DISPARO DE ARMA CORTA: AREA INDUSTRIAL Y DE LA CONSTRUCCION",..: 112 12 91 12 12 12 33 12 12 35 ...

Realizamos una vista previa de los datos:

##   anio coddivipola      sexo edad estcivil             estcivilnombre niveledu
## 1 2010       15001 Masculino   22        5          Estaba soltero(a)        9
## 2 2010       15001 Masculino   40        5          Estaba soltero(a)        2
## 3 2010       99524 Masculino   20        5          Estaba soltero(a)        3
## 4 2010       50001 Masculino   19        9            Sin informacion       99
## 5 2010       50001 Masculino   31        9            Sin informacion        2
## 6 2010       50001  Femenino   51        1 Dos o mas años conviviendo        2
##      niveledunombre cbas1
## 1       Profesional  X700
## 2   Basica primaria  X954
## 3 Basica secundaria  Y249
## 4   Sin informacion  X959
## 5   Basica primaria  X959
## 6   Basica primaria  X959
##                                                    nbas1
## 1 LESION AUTOINFLIGIDA INTENCIONALMENTE POR AHORCAMIENTO
## 2           AGRESION CON DISPARO DE OTRAS ARMAS DE FUEGO
## 3                        DISPARO DE OTRAS ARMAS DE FUEGO
## 4           AGRESION CON DISPARO DE OTRAS ARMAS DE FUEGO
## 5           AGRESION CON DISPARO DE OTRAS ARMAS DE FUEGO
## 6           AGRESION CON DISPARO DE OTRAS ARMAS DE FUEGO

Al revisar la estructura y la vista previa de los datos observamos que debido a que la base de datos es un archivo CSV se toma la variable coddivipola como una variable de tipo integer y por tal motivo elimina el cero a la izquierda por tanto debemos de cambiar el tipo de variable a carácter y corregimos los datos que no tienen el 0 (cero) a la izquierda:

La base de muertes violentas tiene 41867 filas y 10 columnas y los nombres de sus variables son los siguientes:

##  [1] "anio"           "coddivipola"    "sexo"           "edad"          
##  [5] "estcivil"       "estcivilnombre" "niveledu"       "niveledunombre"
##  [9] "cbas1"          "nbas1"

Limpieza de los datos

Eliminamos las variables estcivil y cbas1 ya que no aportan imformación valiosa a los lectores de la base de datos:

Modificamos el nombre de las columnas para un mayor entendimiento y manipulación de las variables:

En la variable CodNivelEdu el código 13 indica que la persona no tiene nivel de escolaridad, en concordancia con los otros códigos, lo debemos cambiar por 0 (cero). El código 99 indica que no hay información sobre el nivel de escolaridad del ciudadano y por tal motivo lo debemos cambiar por valor nulo o vacío:

En las variables EstadoCivil y ClasNivelEdu debemos cambiar el valor “Sin información” por valor nulo o vacío:

Verificamos los valores únicos de la variable EstadoCivil:

## [1] "Estaba soltero(a)"                  ""                                  
## [3] "Dos o mas años conviviendo"         "Estaba casado(a)"                  
## [5] "Dos o menos años conviviendo"       "Estaba separado(a) o divorciado(a)"
## [7] "Estaba viudo(a)"

Posteriormente, realizamos cambios para mejorar los datos:

Mejoramiento de la base de datos

Definimos categorías para los grupos poblacionales de la siguiente manera:

Creamos una nueva variable llamada GrupoPoblacional, utilizando el vector numérico de la Edad y lo agrupamos en intervalos según los grupos de edades anteriores:

Para identificar el departamento y municipio de las muertes debemos cargar otro data frame con la información DIVIPOLA:

Revisamos la estructura del data frame:

## 'data.frame':    1122 obs. of  4 variables:
##  $ Codigo.Departamento: int  5 41 41 76 20 68 17 85 15 41 ...
##  $ Codigo.Municipio   : int  5002 41006 41013 76243 20011 68013 17013 85010 15720 41016 ...
##  $ Nombre.Departamento: Factor w/ 33 levels "Amazonas","Antioquia",..: 2 19 19 31 13 28 9 11 8 19 ...
##  $ Nombre.Municipio   : Factor w/ 1036 levels "A<81>brego","A<8d>quira",..: 3 7 9 261 11 12 13 14 850 16 ...

Realizamos una vista previa de los datos:

##   Codigo.Departamento Codigo.Municipio Nombre.Departamento Nombre.Municipio
## 1                   5             5002           Antioquia        Abejorral
## 2                  41            41006               Huila          Acevedo
## 3                  41            41013               Huila           Agrado
## 4                  76            76243     Valle del Cauca    El a<81>guila
## 5                  20            20011               Cesar        Aguachica
## 6                  68            68013           Santander           Aguada

Al revisar la estructura y la vista previa de los datos observamos que debido a que la base de datos es un archivo CSV se toma la variable Codigo.Municipio como una variable de tipo integer y por tal motivo elimina el cero a la izquierda por tanto debemos de cambiar el tipo de variable a carácter y corregimos los datos que no tienen el 0 (cero) a la izquierda:

Procedemos ahora a cruzar los dos data frame con la función merge:

Revisamos nuevamente la estrctura de las variables del data frame:

##  [1] "Cod_Territorio"      "Anio"                "Genero"             
##  [4] "Edad"                "EstadoCivil"         "CodNivelEdu"        
##  [7] "ClasNivelEdu"        "DesMuerte"           "GrupoPoblacional"   
## [10] "Codigo.Departamento" "Nombre.Departamento" "Nombre.Municipio"

Eliminamos las variables que ya no son útiles:

Renombramos nuevamente las variables:

Reordenamos las variables:

Verificamos la estructura final y los datos:

## 'data.frame':    41867 obs. of  10 variables:
##  $ Anio            : int  2011 2011 2012 2011 2011 2011 2011 2011 2011 2011 ...
##  $ Departamento    : Factor w/ 33 levels "Amazonas","Antioquia",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ Municipio       : Factor w/ 1036 levels "A<81>brego","A<8d>quira",..: 515 515 515 515 515 515 515 515 515 515 ...
##  $ Genero          : Factor w/ 3 levels "Femenino","Indeterminado",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ Edad            : int  37 55 19 30 47 18 21 14 30 20 ...
##  $ GrupoPoblacional: Factor w/ 5 levels "Niño(a)","Adolescente",..: 4 4 3 4 4 3 3 2 4 3 ...
##  $ EstadoCivil     : chr  "Soltero(a)" "" "Soltero(a)" "" ...
##  $ CodNivelEdu     : chr  "" "" "" "" ...
##  $ ClasNivelEdu    : chr  "" "" "" "" ...
##  $ DesMuerte       : Factor w/ 154 levels "","AGRESION CON DISPARO DE ARMA CORTA: AREA INDUSTRIAL Y DE LA CONSTRUCCION",..: 12 12 12 58 1 12 12 12 28 12 ...
##   Anio Departamento Municipio    Genero Edad GrupoPoblacional EstadoCivil
## 1 2011    Antioquia  Medellin Masculino   37        Adulto(a)  Soltero(a)
## 2 2011    Antioquia  Medellin Masculino   55        Adulto(a)            
## 3 2012    Antioquia  Medellin Masculino   19            Joven  Soltero(a)
## 4 2011    Antioquia  Medellin Masculino   30        Adulto(a)            
## 5 2011    Antioquia  Medellin Masculino   47        Adulto(a) Separado(a)
## 6 2011    Antioquia  Medellin Masculino   18            Joven  Soltero(a)
##   CodNivelEdu ClasNivelEdu                                    DesMuerte
## 1                          AGRESION CON DISPARO DE OTRAS ARMAS DE FUEGO
## 2                          AGRESION CON DISPARO DE OTRAS ARMAS DE FUEGO
## 3                          AGRESION CON DISPARO DE OTRAS ARMAS DE FUEGO
## 4                                             AGRESION POR AHORCAMIENTO
## 5                                                                      
## 6                          AGRESION CON DISPARO DE OTRAS ARMAS DE FUEGO

Finalmente, exportamos los datos: