Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG7/Grupo_7_r.R
2714 views
1
# install.packages("lubridate")
2
library(lubridate) # dmy() funcion para trabajar fechas
3
4
# Load libraries
5
library(readxl)
6
library(stringr) # libreria para trabajar expresiones regulares
7
library(tidyverse) # dplyr, ggplot2, tdyr
8
9
10
# "1.0 Set Directorio y leyendo datos"
11
user <- Sys.getenv("USERNAME") # username
12
setwd( paste0("C:/Users/",user,"/Documents/GitHub/1ECO35_2022_2/Lab6") ) # set directorio
13
14
data <- data.frame(read_excel("../data/crime_data/data_administrativa.xlsx"))
15
16
17
# 1.
18
# Convertir el nombre de las variables a min�scula
19
colnames(data) <- tolower(colnames(data))
20
21
# 2.
22
# F�jese que el nombre de la persona tiene puntuaciones y n�mero, retirar todo aquello
23
# que no permita identificar el nombre correcto.
24
data$solo_nombre <- apply( data['nombre'],
25
1 ,
26
function(x) gsub("[0-9]|\\/|\\-|\\.|\\!", '', x)) # eliminando n�meros y signos en espec�fico
27
28
# 3.
29
# Limpiar la fecha de nacimiento de aquellos elementos que la ensucien.
30
data$fecha <- apply( data['born_date'],
31
1 ,
32
function(x) str_extract(x,"[0-9]+/[0-9]+/[0-9]+"))
33
34
# Luego crear otra variable con el formato de fecha.
35
# convirtiendo string a formato fecha
36
data$fecha_formato <- as.Date(data$fecha, format='%d/%m/%Y')
37
38
39
# 4.
40
# Limpiar la columna de edad, el cual tiene puntuaciones que no permiten identificar la edad correcta.
41
data$edad <- apply( data['age'],
42
1 ,
43
function(x) str_extract(x,"[0-9]+"))
44
45
46
# 5.
47
# Crear dummies seg�n el rango del sentenciado en la organizaci�n criminal
48
data<- data %>% mutate(dummy1 = ifelse( str_detect( rank,"lider de la banda criminal"), 1, 0 ),
49
dummy2 = ifelse( str_detect( rank,"cabecilla local"), 1, 0 ),
50
dummy3 = ifelse( str_detect( rank,"cabecilla regional"), 1, 0 ),
51
dummy4 = ifelse( str_detect( rank,"sicario"), 1, 0 ),
52
dummy5 = ifelse( str_detect( rank,"extorsion|extorsionador"), 1, 0 ),
53
dummy6 = ifelse( str_detect( rank,"miembro"), 1, 0 ),
54
dummy7 = ifelse( str_detect( rank,"novato|novto|noato|principiante"), 1, 0 ))
55
56
# 7.
57
# Extraer el usuario del correo electr�nico.
58
data$usuario_correo <- apply(data['correo_abogado'],
59
1 ,
60
function(x) str_match(x,"\\w+"))
61
62
# 8.
63
# Crear una columna que contenga solo la informaci�n del n�mero de dni (por ejemplo: 01-75222677)
64
data$DNI <- apply( data['dni'],
65
1 ,
66
function(x) str_extract(x,"[0-9]+-[0-9]+"))
67
68
69
# 9.
70
# A partir de la columna observaciones, crear las siguientes variables:
71
# - crimen: debe contener informaci�n del delito cometido
72
data$crimen <- sapply(data$observaciones,
73
function(x) str_extract(x,"(?<=sentenciado por )[[a-z]+\\s]*"))
74
75
# - n_hijos: cantidad de hijos del criminal
76
data$n_hijos <- sapply(data$observaciones,
77
function(x) str_extract(x,"(?<=tiene )[0-9]*"))
78
79
# - edad_inicio : edad de inicio en actividades criminales
80
data$edad_inicio <- sapply(data$observaciones,
81
function(x) str_extract(x,"[0-9]+(?= a�os)"))
82
83
84
85
86
87
88
89
90
91