-
Notifications
You must be signed in to change notification settings - Fork 0
/
delitos_sexuales.Rmd
93 lines (78 loc) · 4.43 KB
/
delitos_sexuales.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
---
title: "Crimenes Sexuales"
author: "Javier Moreno"
date: "September 22, 2015"
output: html_document
---
```{r}
library(ggplot2)
library(dplyr)
library(tidyr)
library(scales)
library(gridExtra)
library(Hmisc)
define_region <- function(row, col){
viewport(layout.pos.row = row, layout.pos.col = col)
}
cs10 <- read.csv('datos/DELITOS SEXUALES 2010.xlsx - DELITOS SEXUALES.csv')
cs11 <- read.csv('datos/DELITOS SEXUALES 2011.xlsx - DELITOS SEXUALES.csv')
cs12 <- read.csv('datos/DELITOS SEXUALES 2012.xlsx - DELITOS SEXUALES.csv')
cs13 <- read.csv('datos/DELITOS SEXUALES 2013.xlsx - DELITOS SEXUALES.csv')
cs14 <- read.csv('datos/DELITOS SEXUALES 2014.xlsx - DELITOS SEXUALES.csv')
csdf <- rbind(cs10, cs11, cs12, cs13, cs14)
```
```{r}
names(csdf) <- tolower(names(csdf))
names(csdf)
csdf$día <- factor(csdf$día, levels=c('LUNES', 'MARTES', 'MIERCOLES', 'JUEVES', 'VIERNES', 'SABADO', 'DOMINGO'))
levels(csdf$día) <- c('Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado', 'Domingo')
csdf$hora <- as.POSIXct(strptime(csdf$hora, format="%H:%M"))
csdf$hora.redonda <- cut(csdf$hora, breaks='hour')
levels(csdf$hora.redonda) <- substr(levels(csdf$hora.redonda), 12, 16)
csdf$dia.mes <- as.Date(substr(as.character(csdf$fecha), 1, nchar(as.character(csdf$fecha)) - 3), format='%d-%b')
csdf$fecha <- as.Date(as.character(csdf$fecha), format='%d-%b-%y')
csdf$mes <- as.factor(months(csdf$fecha))
csdf$mes <- factor(csdf$mes, levels=month.name)
meses <- c('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre')
levels(csdf$mes) <- meses
delitos <- c('ARTÍCULO 205. ACCESO CARNAL VIOLENTO', 'ARTÍCULO 206. ACTO SEXUAL VIOLENTO', 'ARTÍCULO 207. ACCESO CARNAL O ACTO SEXUAL EN PERSONA PUESTA EN INCAPACIDAD DE RESISTIR', 'ARTÍCULO 211. ACCESO CARNAL VIOLENTO (CIRCUNSTANCIAS AGRAVACIÓN)', 'RTÍCULO 211. ACTO SEXUAL VIOLENTO (CIRCUNSTANCIAS DE AGRAVACIÓN)', 'ARTÍCULO 211. ACCESO CARNAL O ACTO SEXUAL EN PERSONA PUESTA EN INCAPACIDAD DE RESISTIR (CIRCUNSTANC')
df <- csdf %>% filter(delito %in% delitos)
acceso.carnal.por.dia <- df %>% group_by(dia.mes) %>% summarise(count=n())
```
```{r}
total <- nrow(df)
total
table(df %>% select(sexo))
diadelasemana <- ggplot(df, aes(día)) +
geom_bar(aes(y = (..count..)/sum(..count..)), fill='grey55') + theme_bw() +
scale_y_continuous(labels=percent_format()) + xlab('Día de ocurrencia') +
ylab('Porcentaje de reportes de violaciones sobre el total (2010-2014)') + theme(axis.text.x = element_text(angle = 90, hjust = 1))
horadeldia <- ggplot(df, aes(hora.redonda)) +
geom_bar(aes(y = (..count..)/sum(..count..)), fill='grey55', binwidth=3600) + theme_bw() +
scale_y_continuous(labels=percent_format()) + xlab('Hora de ocurrencia') +
ylab('') + theme(axis.text.x = element_text(angle = 90, hjust = 1))
mesdelaño <- ggplot(df, aes(mes)) +
geom_bar(aes(y = (..count..)/sum(..count..)), fill='grey55', binwidth=3600) + theme_bw() +
scale_y_continuous(labels=percent_format()) + xlab('Mes de ocurrencia') +
ylab('') + theme(axis.text.x = element_text(angle = 90, hjust = 1))
diadelaño <- ggplot(acceso.carnal.por.dia, aes(dia.mes, count/sum(acceso.carnal.por.dia$count))) +
geom_jitter(color='grey70') + geom_smooth(color='grey20') + theme_bw() + scale_y_continuous(labels=percent_format()) +
scale_x_date(labels = date_format("%d/%m"), breaks = "1 month", minor_breaks = "1 week") +
xlab('Día de ocurrencia') + ylab('Porcentaje de reportes de violaciones sobre el total (2010-2014)') +
annotate('text', x=as.Date('2015-01-01', format='%Y-%m-%d'), y=0.012-0.0012, label='Año nuevo',
angle=90, color='grey50') +
annotate('text', x=as.Date('2015-12-24', format='%Y-%m-%d'), y=0.006 + 0.00006, label='Navidad',
angle=90, color='grey50') +
annotate('text', x=as.Date('2015-12-07', format='%Y-%m-%d'), y=0.0045 + 0.0017 , label='Noche de las velitas',
angle=90, color='grey50') +
annotate('text', x=as.Date('2015-06-15', format='%Y-%m-%d'), y=0.0085, label=14.485, size=25, color='grey50') +
annotate('text', x=as.Date('2015-06-15', format='%Y-%m-%d'), y=0.0068, label='reportes de violación\nen Colombia entre 2010 y 2014', size=7, color='grey50')
```
```{r}
grid.newpage()
pushViewport(viewport(layout = grid.layout(2, 3)))
print(diadelaño, vp=define_region(1, 1:3))
print(diadelasemana, vp = define_region(2, 1))
print(horadeldia, vp = define_region(2, 2))
print(mesdelaño, vp = define_region(2, 3))
```