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"

Cambiando el formato de la columna FECHA como date y Agregando una nueva columna llamada MES de tipo numerico que define el numero de mes de la fecha

# Limpiar y depurar el campo FECHA
bicis2017$FECHA <- as.Date(bicis2017$FECHA, "%d/%m/%Y")
bicis2017$MES <- as.numeric(format(bicis2017$FECHA,format="%m"))

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