Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG7/Grupo_3_R.R
2714 views
1
#---- TAREA 7 ----
2
3
# Cargamos librerías
4
5
install.packages("tidyverse")
6
7
library(readxl)
8
library(stringr)
9
library(tidyverse)
10
11
12
# Colocamos el directorio a trabajar
13
14
user <- Sys.getenv("fdcc0")
15
16
setwd(paste0("C:/Users/fdcc0/Desktop/PUCP/2022-2/R-PYTHON"))
17
18
19
data <- read_excel("C:/Users/fdcc0/Desktop/PUCP/2022-2/R-PYTHON/TAREA 7/data_administrativa.xlsx")
20
21
22
#---- 1. Convertir el nombre de las variables a minúscula -----
23
24
colnames(data) <- tolower(colnames(data))
25
26
# Se cambiaron exitosamente el nombre de las variables a minúsculas
27
28
#---- 2. Identificar nombre ----
29
30
31
data$nombre <- apply(data['nombre'],
32
1 ,
33
function(x) gsub("[0-9]+", '', x))
34
35
data$nombre <- apply(data['nombre'],
36
1 ,
37
function(x) gsub("[-/!.]", '', x))
38
39
#--- 3.Limpiar la fecha de nacimiento ----
40
41
42
43
data$born_date <- apply(data['born_date'],
44
1 ,
45
function(x) str_extract(x,"[0-9]{2}/[0-9]{2}/[0-9]{4}"))
46
47
data$born_date <- as.Date(data$born_date,format='%d/%m/%Y')
48
49
50
#----- 4. Limpiar la columna de edad, ----
51
52
data$age <- apply(data['age'],
53
1 ,
54
function(x) str_extract(x,"[0-9]+"))
55
56
57
#----- 5. Crear dummies según el rango del sentenciado --------
58
59
#dum2: toma el valor de 1 si el sentenciado fue cabecilla local
60
#dum3: toma el valor de 1 si el sentenciado fue cabecilla regional
61
#dum4: toma el valor de 1 si el sentenciado fue sicario
62
#dum5: toma el valor de 1 si el sentenciado realizó extorsión
63
#dum6: toma el valor de 1 si el sentenciado fue miembro regular
64
#dum7: toma el valor de 1 si el sentenciado fue novato o principiante
65
66
# primero limpiamos la variable rank
67
68
data$rank <- gsub('novto', 'novato', data$rank)
69
data$rank <- gsub('noato', 'novato', data$rank)
70
data$rank <- gsub('principiante', 'novato', data$rank)
71
data$rank <- gsub('extorsionador', 'extorsion', data$rank)
72
73
#creación de las dummies
74
75
data$dum1 <- ifelse(data$rank == "lider de la banda criminal", 1, 0)
76
data$dum2 <- ifelse(data$rank == "cabecilla local", 1, 0)
77
data$dum3 <- ifelse(data$rank == "cabecilla regional", 1, 0)
78
data$dum4 <- ifelse(data$rank == "sicario", 1, 0)
79
data$dum5 <- ifelse(data$rank == "extorsion", 1, 0)
80
data$dum6 <- ifelse(data$rank == "miembro", 1, 0)
81
data$dum7 <- ifelse(data$rank == "novato", 1, 0)
82
83
84
#------- 6. Extraer el usuario del correo electrónico. -----
85
86
data$usuarios <- apply(data['correo_abogado'],
87
1,
88
function(x) str_extract(x,"^\\w+"))
89
90
91
#----- 7. Crear columna con número de dni ----
92
93
data$num_dni <- apply(data['dni'],
94
1 ,
95
function(x) str_extract(x,"[0-9]+[-]+[0-9]+"))
96
97
98
99
#---- 8. crear las siguiente variables ----
100
101
# crimen: debe contener información del delito cometido (ERROR 1 OBS)
102
103
data$crimen <- apply(data['observaciones'],
104
1 ,
105
function(x) str_match(x,"\\.*[P/p]or\\s([\\w*]*)")[2])
106
107
# n_hijos: cantidad de hijos del criminal (OK)
108
109
data$n_hijos <- apply(data['observaciones'],
110
1 ,
111
function(x) str_match(x,"\\.*[T/t]iene\\s([\\w*]*)")[2])
112
113
# edad_inicio : edad de inicio en actividades criminales
114
115
data$edad_inicio <- apply(data['observaciones'],
116
1 ,
117
function(x) str_match(x,"\\.*[L/l]os\\s\\s([\\w*]*)")[2])
118
119