Path: blob/main/Trabajo_grupal/WG7/Grupo_7_r.R
2714 views
# install.packages("lubridate")1library(lubridate) # dmy() funcion para trabajar fechas23# Load libraries4library(readxl)5library(stringr) # libreria para trabajar expresiones regulares6library(tidyverse) # dplyr, ggplot2, tdyr789# "1.0 Set Directorio y leyendo datos"10user <- Sys.getenv("USERNAME") # username11setwd( paste0("C:/Users/",user,"/Documents/GitHub/1ECO35_2022_2/Lab6") ) # set directorio1213data <- data.frame(read_excel("../data/crime_data/data_administrativa.xlsx"))141516# 1.17# Convertir el nombre de las variables a min�scula18colnames(data) <- tolower(colnames(data))1920# 2.21# F�jese que el nombre de la persona tiene puntuaciones y n�mero, retirar todo aquello22# que no permita identificar el nombre correcto.23data$solo_nombre <- apply( data['nombre'],241 ,25function(x) gsub("[0-9]|\\/|\\-|\\.|\\!", '', x)) # eliminando n�meros y signos en espec�fico2627# 3.28# Limpiar la fecha de nacimiento de aquellos elementos que la ensucien.29data$fecha <- apply( data['born_date'],301 ,31function(x) str_extract(x,"[0-9]+/[0-9]+/[0-9]+"))3233# Luego crear otra variable con el formato de fecha.34# convirtiendo string a formato fecha35data$fecha_formato <- as.Date(data$fecha, format='%d/%m/%Y')363738# 4.39# Limpiar la columna de edad, el cual tiene puntuaciones que no permiten identificar la edad correcta.40data$edad <- apply( data['age'],411 ,42function(x) str_extract(x,"[0-9]+"))434445# 5.46# Crear dummies seg�n el rango del sentenciado en la organizaci�n criminal47data<- data %>% mutate(dummy1 = ifelse( str_detect( rank,"lider de la banda criminal"), 1, 0 ),48dummy2 = ifelse( str_detect( rank,"cabecilla local"), 1, 0 ),49dummy3 = ifelse( str_detect( rank,"cabecilla regional"), 1, 0 ),50dummy4 = ifelse( str_detect( rank,"sicario"), 1, 0 ),51dummy5 = ifelse( str_detect( rank,"extorsion|extorsionador"), 1, 0 ),52dummy6 = ifelse( str_detect( rank,"miembro"), 1, 0 ),53dummy7 = ifelse( str_detect( rank,"novato|novto|noato|principiante"), 1, 0 ))5455# 7.56# Extraer el usuario del correo electr�nico.57data$usuario_correo <- apply(data['correo_abogado'],581 ,59function(x) str_match(x,"\\w+"))6061# 8.62# Crear una columna que contenga solo la informaci�n del n�mero de dni (por ejemplo: 01-75222677)63data$DNI <- apply( data['dni'],641 ,65function(x) str_extract(x,"[0-9]+-[0-9]+"))666768# 9.69# A partir de la columna observaciones, crear las siguientes variables:70# - crimen: debe contener informaci�n del delito cometido71data$crimen <- sapply(data$observaciones,72function(x) str_extract(x,"(?<=sentenciado por )[[a-z]+\\s]*"))7374# - n_hijos: cantidad de hijos del criminal75data$n_hijos <- sapply(data$observaciones,76function(x) str_extract(x,"(?<=tiene )[0-9]*"))7778# - edad_inicio : edad de inicio en actividades criminales79data$edad_inicio <- sapply(data$observaciones,80function(x) str_extract(x,"[0-9]+(?= a�os)"))8182838485868788899091