Cargue los siguientes paquetes: data.table,rgdal,ggplot2,treemap,leaflet,sp,tidyverse y RColorBrewer. (1 punto)
library(data.table)
library(rgdal)
library(ggplot2)
library(treemap)
library(leaflet)
library(sp)
library(tidyverse)
library(RColorBrewer)
Cargue la base de datos de las motos (.shp), obtenga la base de datos y transformarla en un data.table (3 puntos)
motos1 <- readOGR(dsn="Motos/MotosGS2016_2.shp")
## OGR data source with driver: ESRI Shapefile
## Source: "/Users/milemorozin/Desktop/Data Science/Control 2/Motos/MotosGS2016_2.shp", layer: "MotosGS2016_2"
## with 2685 features
## It has 29 fields
motos <- as.data.table(motos1@data)
###3. La variable ESTADO_CAL describe el estado de la calzada por la cual circulaba el/la motociclista. De esta forma, las categorías que debe considerar esta variable son 3: BUENO, REGULAR y MALO. Por lo tanto, lo que debe hacer, es considerar todas aquellas observaciones que tengan alguna de esas 3 categorías en la variable ESTADO_CAL. (3 puntos)
motos <- motos[ESTADO_CAL=="BUENO" | ESTADO_CAL=="REGULAR" | ESTADO_CAL=="MALO"]
###4. ¿Cuántos accidentes hay por comuna? (3 puntos)
motos[,.N,by="COMUNA1"]
## COMUNA1 N
## 1: LAMPA 14
## 2: SANTIAGO 321
## 3: NUNOA 132
## 4: EL BOSQUE 89
## 5: PUENTE ALTO 176
## 6: HUECHURABA 35
## 7: PUDAHUEL 65
## 8: VITACURA 66
## 9: LA PINTANA 28
## 10: PROVIDENCIA 205
## 11: LAS CONDES 213
## 12: QUINTA NORMAL 82
## 13: PENALOLEN 98
## 14: COLINA 31
## 15: RECOLETA 50
## 16: QUILICURA 66
## 17: PIRQUE 2
## 18: RENCA 35
## 19: MACUL 77
## 20: LA FLORIDA 95
## 21: P. AGUIRRE CERDA 28
## 22: INDEPENDENCIA 44
## 23: LA GRANJA 52
## 24: MAIPU 150
## 25: LO BARNECHEA 28
## 26: CONCHALI 48
## 27: CERRILLOS 49
## 28: SAN MIGUEL 52
## 29: ESTACION CENTRAL 60
## 30: CERRO NAVIA 36
## 31: LA CISTERNA 54
## 32: LA REINA 52
## 33: SAN JOAQUIN 58
## 34: SAN RAMON 38
## 35: SAN BERNARDO 6
## 36: LO ESPEJO 15
## 37: LO PRADO 19
## COMUNA1 N
###5. ¿Cuántos accidentes con personas fallecidas hay por comuna? (3 puntos)
motos[FALLECIDOS>0,.N, by=COMUNA1]
## COMUNA1 N
## 1: QUINTA NORMAL 2
## 2: PUDAHUEL 3
## 3: ESTACION CENTRAL 2
## 4: COLINA 1
## 5: EL BOSQUE 1
## 6: SANTIAGO 5
## 7: MAIPU 6
## 8: SAN RAMON 1
## 9: PUENTE ALTO 1
## 10: LAS CONDES 3
## 11: PROVIDENCIA 2
## 12: SAN JOAQUIN 2
## 13: MACUL 2
## 14: RECOLETA 1
## 15: NUNOA 4
## 16: LA GRANJA 1
## 17: LO PRADO 1
## 18: LA FLORIDA 1
## 19: CERRILLOS 1
###6. ¿Cuántos accidentes con personas graves hay por comuna? (3 puntos)
motos[GRAVES>0,.N,by=COMUNA1]
## COMUNA1 N
## 1: LAMPA 4
## 2: NUNOA 47
## 3: SANTIAGO 81
## 4: PROVIDENCIA 54
## 5: LAS CONDES 56
## 6: QUINTA NORMAL 24
## 7: COLINA 6
## 8: RECOLETA 5
## 9: PIRQUE 1
## 10: RENCA 12
## 11: PUDAHUEL 22
## 12: HUECHURABA 7
## 13: MAIPU 33
## 14: PENALOLEN 21
## 15: CONCHALI 13
## 16: CERRILLOS 18
## 17: ESTACION CENTRAL 16
## 18: PUENTE ALTO 29
## 19: P. AGUIRRE CERDA 2
## 20: VITACURA 23
## 21: SAN JOAQUIN 18
## 22: LA REINA 18
## 23: LA FLORIDA 13
## 24: INDEPENDENCIA 10
## 25: SAN MIGUEL 11
## 26: MACUL 22
## 27: EL BOSQUE 14
## 28: SAN RAMON 11
## 29: LA CISTERNA 11
## 30: QUILICURA 8
## 31: SAN BERNARDO 1
## 32: LO BARNECHEA 2
## 33: CERRO NAVIA 10
## 34: LA GRANJA 11
## 35: LO PRADO 4
## 36: LO ESPEJO 2
## 37: LA PINTANA 1
## COMUNA1 N
###7. ¿Cómo podría mostrar el resultado de la pregunta 6 en un gráfico?. Muestre un gráfico legible. (5 puntos)
ggplot(data=motos[motos$GRAVES>0], aes(x=COMUNA1)) + geom_bar() + labs(title="Accidentados Graves", subtitle="Por Comuna en Región Metropolitana", caption="Informe accidente en moto en Región Metropolitana año 2016", x="Comunas", y="Accidentes Graves") + theme(axis.text.x=element_text(angle= 85, vjust= 0.6))
###8. ¿Cuál es la principal causa (CAUSA__CON) de accidentes? (3 puntos)
motos[,.N,by="CAUSA__CON"]
## CAUSA__CON N
## 1: OTRAS CAUSAS 340
## 2: IMPRUDENCIA DEL CONDUCTOR 1197
## 3: CAUSAS NO DETERMINADAS 511
## 4: IMPRUDENCIA DEL PEATON 64
## 5: PERDIDA CONTROL VEHICULO 147
## 6: DEFICIENCIAS VIALES 14
## 7: DESOBEDIENCIA A SENALIZACION 306
## 8: DROGAS Y/O FATIGA EN CONDUCTOR 4
## 9: FALLAS MECANICAS 9
## 10: VELOCIDAD IMPRUDENTE 10
## 11: ALCOHOL EN CONDUCTOR 62
## 12: ALCOHOL EN PEATON 4
## 13: IMPRUDENCIA DEL PASAJERO 1
###Bonus 1: ¿Cuál es la principal causa (CAUSA__CON) de accidentes por comuna? (3 puntos)
###9. ¿Cómo podríamos mostrar,gráficamente, las diferentes causas para las dos comunas con más accidentes? Muestre un gráfico legible. (5 puntos)
# Santiago y Las Condes son las comunas con más accidentes.
LasCondes <- motos[COMUNA1=="LAS CONDES"]
Santiago <- motos[COMUNA1=="SANTIAGO"]
ggplot()+geom_bar(data=Santiago,aes(x=CAUSA__CON))+geom_bar(data=LasCondes,aes(x=CAUSA__CON))+theme(axis.text.x=element_text(size = 6,angle = 85,vjust = 0.5)) + facet_wrap(~COMUNA1) + labs(x="Causa de accidentes", y="Cantidad de accidentados",title = "Número de Accidentes", subtitle="en Santiago y Las Condes")
###10. Muestre gráficamente la cantidad de accidentes que hay para las distintas causas de accidentes. (5 puntos)
treemap(motos,index="CAUSA__CON", vSize = "Accidentes", type="value", title="Cantidad de accidentes que hay para las distintas causas de accidentes")
###11. Muestre en un mapa el número de accidentes en motos que hay para cada comuna. Este mapa debe tener colores más intensos para aquellas comunas con más accidentes en moto. Para esto:
comunas <- readOGR(dsn="ComunasR13/COMUNA_C17.shp")
## OGR data source with driver: ESRI Shapefile
## Source: "/Users/milemorozin/Desktop/Data Science/Control 2/ComunasR13/COMUNA_C17.shp", layer: "COMUNA_C17"
## with 52 features
## It has 8 fields
comunas@proj4string
## CRS arguments:
## +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
comunas1 <- spTransform(comunas, CRSobj = proj4string(motos1))
comunas@proj4string
## CRS arguments:
## +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
tabla <- motos[,.N,by="COMUNA1"]
tabla <- motos[,.N,by="COMUNA1"]
pColor<-colorQuantile(palette = brewer.pal(4,name = “Reds”),domain =range(comunas1@data$NOM_COMUNA,na.rm = T),n = 5)
Cree los labels o las etiquetas. (3 puntos) labels <- sprintf( “Comuna: %s
Acc.Moto: %g”, comunas1\(NOM_COMUNA, comunas1\)Accidentes ) %>% lapply(htmltools::HTML)
Realice el mapa por comunas utilizando toda la información anterior. (6 puntos)
###Bonus 2: Realice el mismo mapa de la pregunta 11, pero muestre la proporción de fallecidos en relación al número de accidente en las comunas donde hubo fallecidos por accidentes de moto. (7 puntos)
Recomendación: Limpie el enviroment y vuelva a abrir las bases de motos y comunas