Path: blob/main/Trabajo_grupal/WG7/Grupo_3_R.R
2714 views
#---- TAREA 7 ----12# Cargamos librerías34install.packages("tidyverse")56library(readxl)7library(stringr)8library(tidyverse)91011# Colocamos el directorio a trabajar1213user <- Sys.getenv("fdcc0")1415setwd(paste0("C:/Users/fdcc0/Desktop/PUCP/2022-2/R-PYTHON"))161718data <- read_excel("C:/Users/fdcc0/Desktop/PUCP/2022-2/R-PYTHON/TAREA 7/data_administrativa.xlsx")192021#---- 1. Convertir el nombre de las variables a minúscula -----2223colnames(data) <- tolower(colnames(data))2425# Se cambiaron exitosamente el nombre de las variables a minúsculas2627#---- 2. Identificar nombre ----282930data$nombre <- apply(data['nombre'],311 ,32function(x) gsub("[0-9]+", '', x))3334data$nombre <- apply(data['nombre'],351 ,36function(x) gsub("[-/!.]", '', x))3738#--- 3.Limpiar la fecha de nacimiento ----39404142data$born_date <- apply(data['born_date'],431 ,44function(x) str_extract(x,"[0-9]{2}/[0-9]{2}/[0-9]{4}"))4546data$born_date <- as.Date(data$born_date,format='%d/%m/%Y')474849#----- 4. Limpiar la columna de edad, ----5051data$age <- apply(data['age'],521 ,53function(x) str_extract(x,"[0-9]+"))545556#----- 5. Crear dummies según el rango del sentenciado --------5758#dum2: toma el valor de 1 si el sentenciado fue cabecilla local59#dum3: toma el valor de 1 si el sentenciado fue cabecilla regional60#dum4: toma el valor de 1 si el sentenciado fue sicario61#dum5: toma el valor de 1 si el sentenciado realizó extorsión62#dum6: toma el valor de 1 si el sentenciado fue miembro regular63#dum7: toma el valor de 1 si el sentenciado fue novato o principiante6465# primero limpiamos la variable rank6667data$rank <- gsub('novto', 'novato', data$rank)68data$rank <- gsub('noato', 'novato', data$rank)69data$rank <- gsub('principiante', 'novato', data$rank)70data$rank <- gsub('extorsionador', 'extorsion', data$rank)7172#creación de las dummies7374data$dum1 <- ifelse(data$rank == "lider de la banda criminal", 1, 0)75data$dum2 <- ifelse(data$rank == "cabecilla local", 1, 0)76data$dum3 <- ifelse(data$rank == "cabecilla regional", 1, 0)77data$dum4 <- ifelse(data$rank == "sicario", 1, 0)78data$dum5 <- ifelse(data$rank == "extorsion", 1, 0)79data$dum6 <- ifelse(data$rank == "miembro", 1, 0)80data$dum7 <- ifelse(data$rank == "novato", 1, 0)818283#------- 6. Extraer el usuario del correo electrónico. -----8485data$usuarios <- apply(data['correo_abogado'],861,87function(x) str_extract(x,"^\\w+"))888990#----- 7. Crear columna con número de dni ----9192data$num_dni <- apply(data['dni'],931 ,94function(x) str_extract(x,"[0-9]+[-]+[0-9]+"))95969798#---- 8. crear las siguiente variables ----99100# crimen: debe contener información del delito cometido (ERROR 1 OBS)101102data$crimen <- apply(data['observaciones'],1031 ,104function(x) str_match(x,"\\.*[P/p]or\\s([\\w*]*)")[2])105106# n_hijos: cantidad de hijos del criminal (OK)107108data$n_hijos <- apply(data['observaciones'],1091 ,110function(x) str_match(x,"\\.*[T/t]iene\\s([\\w*]*)")[2])111112# edad_inicio : edad de inicio en actividades criminales113114data$edad_inicio <- apply(data['observaciones'],1151 ,116function(x) str_match(x,"\\.*[L/l]os\\s\\s([\\w*]*)")[2])117118119