Objetivo: Esta práctica determina el número de accidentes por cada mes del año 2017 del conjunto de datos de bicitetas
Las librerías necesarias
library(readr)
Cargar los datos que están en 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)
## [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"
columnas <- colnames(bicis2017)
columnas[1] <- "FECHA"
columnas[6] <- "NO"
columnas[7] <- "NO.PARTE"
columnas[20] <- "NO.VICTIMAS"
colnames(bicis2017) <- columnas
names(bicis2017)
## [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"
Cambiando el formato de la columna FECHA como date y….
Agregando una nueva columna llamada MES de tipo numeric
que define el numero de mes de la fecha
bicis2017$FECHA <- as.Date(bicis2017$FECHA, "%d/%m/%Y")
bicis2017$MES <- as.numeric(format(bicis2017$FECHA,format="%m"))
Así van quedndo los datos
Vamos a encontrar los accidentes por mes
enero <- subset(bicis2017, MES == 1)
febrero <- subset(bicis2017, MES == 2)
marzo <- subset(bicis2017, MES == 3)
abril <- subset(bicis2017, MES == 4)
mayo <- subset(bicis2017, MES == 5)
junio <- subset(bicis2017, MES == 6)
julio <- subset(bicis2017, MES == 7)
agosto <- subset(bicis2017, MES == 8)
septiembre <- subset(bicis2017, MES == 9)
octubre <- subset(bicis2017, MES == 10)
noviembre <- subset(bicis2017, MES == 11)
diciembre <- subset(bicis2017, MES == 12)
Mostramos algunos meses, solo el campo FECHA
lO QUE QUEREMOS ES CUANTOS DE CADlength(enero$FECHA)A MES
Utilizamos la función length() para ver cuantos registros
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")

barplot(resumen$No.Accidentes,
main = "Accidentes por mes",
xlab = "Meses",
ylab = "Accidentes",
names.arg = mesesNombres,
)
