Objetivo: Esta práctica determina el número de accidentes por cada mes del año 2017 del conjunto de datos de bicicletas
Las librerías necesarias
library(readr) # Usar Libreria
Cargar los datos desde INTERNET
bicis2017 <- read.csv("https://raw.githubusercontent.com/rpizarrog/Curso-Titulacion-Data-Science-/master/2019/Datos/AccidentesBicicletas_2017.csv",
encoding = "UTF-8")
class(bicis2017)
## [1] "data.frame"
Definiendo nombres de columnas adecuados
names(bicis2017) # Checamos los nombres de las columnas
## [1] "X.U.FEFF.FECHA" "RANGO.HORARIO" "DIA.SEMANA"
## [4] "DISTRITO" "LUGAR.ACCIDENTE" "Nº"
## [7] "Nº.PARTE" "CPFA.Granizo" "CPFA.Hielo"
## [10] "CPFA.Lluvia" "CPFA.Niebla" "CPFA.Seco"
## [13] "CPFA.Nieve" "CPSV.Mojada" "CPSV.Aceite"
## [16] "CPSV.Barro" "CPSV.Grava.Suelta" "CPSV.Hielo"
## [19] "CPSV.Seca.Y.Limpia" "Nº.VICTIMAS.." "TIPO.ACCIDENTE"
## [22] "Tipo.Vehiculo" "TIPO.PERSONA" "SEXO"
## [25] "LESIVIDAD" "Tramo.Edad"
# Cambiamos el nombre de los atributo de bicis2017 columnas 1, 6, 7 y 20
columnas <- colnames(bicis2017)
columnas[1] <- "FECHA" # Cambia el nombre de columna
columnas[6] <- "NO" # Cambia el nombre de columna
columnas[7] <- "NO.PARTE" # Cambia el nombre de columna
columnas[20] <- "NO.VICTIMAS" # Cambia el nombre de columna
colnames(bicis2017) <- columnas
names(bicis2017) # Mostramos como quedan todas las columnas con los cambios realizados
## [1] "FECHA" "RANGO.HORARIO" "DIA.SEMANA"
## [4] "DISTRITO" "LUGAR.ACCIDENTE" "NO"
## [7] "NO.PARTE" "CPFA.Granizo" "CPFA.Hielo"
## [10] "CPFA.Lluvia" "CPFA.Niebla" "CPFA.Seco"
## [13] "CPFA.Nieve" "CPSV.Mojada" "CPSV.Aceite"
## [16] "CPSV.Barro" "CPSV.Grava.Suelta" "CPSV.Hielo"
## [19] "CPSV.Seca.Y.Limpia" "NO.VICTIMAS" "TIPO.ACCIDENTE"
## [22] "Tipo.Vehiculo" "TIPO.PERSONA" "SEXO"
## [25] "LESIVIDAD" "Tramo.Edad"
Así quedaron los datos
#bicis2017
#si queremos mostrarlos le quitamos el simbolo # a la linea anterio
Vamos a encontrar los accidentes por mes
enero <- subset(bicis2017, MES == 1) # LOS DE ENERO
febrero <- subset(bicis2017, MES == 2) # LOS DE FEBRERO
marzo <- subset(bicis2017, MES == 3) # LOS DE MARZO
abril <- subset(bicis2017, MES == 4) # LOS DE ABRIL
mayo <- subset(bicis2017, MES == 5) # LOS DE MAYO
junio <- subset(bicis2017, MES == 6) # LOS DE JUNIO
julio <- subset(bicis2017, MES == 7) # LOS DE JULIO
agosto <- subset(bicis2017, MES == 8) # LOS DE AGOSTO
septiembre <- subset(bicis2017, MES == 9) # LOS DE SEPTIEMBRE
octubre <- subset(bicis2017, MES == 10) # LOS DE OCTUBRE
noviembre <- subset(bicis2017, MES == 11) # LOS DE NOVIEMBRE
diciembre <- subset(bicis2017, MES == 12) # LOS DE DICIEMBRE
Mostramos algunos meses, solo el campo FECHA
#enero$FECHA
#febrero$FECHA
#marzo$FECHA
#abril$FECHA
#mayo$FECHA
#junio$FECHA
#julio$FECHA
#agosto$FECHA
#septiembre$FECHA
#octubre$FECHA
#noviembre$FECHA
#diciembre$FECHA
Utilizamos la función length() para ver cuantos registros contiene cada mes
length(enero$FECHA)
## [1] 45
length(febrero$FECHA)
## [1] 49
length(marzo$FECHA)
## [1] 60
length(abril$FECHA)
## [1] 54
length(mayo$FECHA)
## [1] 82
length(junio$FECHA)
## [1] 82
length(julio$FECHA)
## [1] 70
length(agosto$FECHA)
## [1] 47
length(septiembre$FECHA)
## [1] 85
length(octubre$FECHA)
## [1] 88
length(noviembre$FECHA)
## [1] 59
length(diciembre$FECHA)
## [1] 35
Construyendo un data.frame mas elegante
mesesNombres <- c("Enero", "Febrero", "Marzo", "Abril",
"Mayo", "Junio", "Julio", "Agosto",
"Septiembre", "Octubre", "Noviembre", "Diciembre")
resumen <- data.frame(mesesNombres, c(length(enero$FECHA),
length(febrero$FECHA), length(marzo$FECHA),
length(abril$FECHA), length(mayo$FECHA),length(junio$FECHA),
length(julio$FECHA),
length(agosto$FECHA),
length(septiembre$FECHA),
length(octubre$FECHA),
length(noviembre$FECHA),
length(diciembre$FECHA)))
resumen
## mesesNombres
## 1 Enero
## 2 Febrero
## 3 Marzo
## 4 Abril
## 5 Mayo
## 6 Junio
## 7 Julio
## 8 Agosto
## 9 Septiembre
## 10 Octubre
## 11 Noviembre
## 12 Diciembre
## c.length.enero.FECHA...length.febrero.FECHA...length.marzo.FECHA...
## 1 45
## 2 49
## 3 60
## 4 54
## 5 82
## 6 82
## 7 70
## 8 47
## 9 85
## 10 88
## 11 59
## 12 35
Poniendo nombres de columnas a resumen y mostrar
colnames(resumen) <- c("Mes", "No.Accidentes")
resumen
## Mes No.Accidentes
## 1 Enero 45
## 2 Febrero 49
## 3 Marzo 60
## 4 Abril 54
## 5 Mayo 82
## 6 Junio 82
## 7 Julio 70
## 8 Agosto 47
## 9 Septiembre 85
## 10 Octubre 88
## 11 Noviembre 59
## 12 Diciembre 35
Vamos a visualizar graficmente los datos Utilizamos plot
plot(resumen, type="b")

Otra Grafica
barplot(resumen$No.Accidentes,
main = "Accidentes por mes",
xlab = "Meses", ylab = "Accidentes",
legend.text = mesesNombres,
col = c(1:12),
names.arg = mesesNombres,)

Interpretacion: Con el desarrollo de la practica nos dimos cuenta que paso a paso es mas facil la interpretacion de la informacion hats llegar a la grafica en donde se determina rapidamente que el mes con mayor numero de accidentes es el mes de Octubre (88) y el mes con menor numero de accidentes es Diciembre (35), si queremos seguir analizando los datos se puede checar que condiciones tenian esos dias para determinar si puede ser la causa de los accidentes para intentar prevenirlos