Objetivo: Esta práctica determina el número de accidentes por cada mes del año 2017 del conjunto de datos de bicitetas

Librerias Necesarias

library(readr)  # La libreria

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)  # Devuelve el tipo de datos. Quermos un data.frame
## [1] "data.frame"

Definiendo nombres de columnas adecuados

# VAMOS A TRABAJAR CON bicis2017
names(bicis2017) # El nombre de aributo de FECHA está extraño
##  [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 es atributo de bicis2017 y al 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) # Ahora como se ven los nombres de columna
##  [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

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

Mostrar descripcion de las columanas despues de agregar la columna ‘MES’

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"         "MES"

Así quedaron los datos

# bicis2017

Vamos a encontrar los accidentes por mes

enero <- subset(bicis2017, MES == 1)  # LOS DE ENERO
febrero <- subset(bicis2017, MES == 2)  # LOS DE ENERO
marzo <- subset(bicis2017, MES == 3)  # LOS DE ENERO
abril <- subset(bicis2017, MES == 4)  # LOS DE ENERO
mayo <- subset(bicis2017, MES == 5)  # LOS DE ENERO
junio <- subset(bicis2017, MES == 6)  # LOS DE ENERO
julio <- subset(bicis2017, MES == 7)  # LOS DE ENERO
agosto <- subset(bicis2017, MES == 8)  # LOS DE ENERO
septiembre <- subset(bicis2017, MES == 9)  # LOS DE ENERO
octubre <- subset(bicis2017, MES == 10)  # LOS DE ENERO
noviembre <- subset(bicis2017, MES == 11)  # LOS DE ENERO
diciembre <- subset(bicis2017, MES == 12)  # LOS DE ENERO

Mostramos algunos meses, solo el campo FECHA

enero$FECHA 
##  [1] "2017-01-01" "2017-01-02" "2017-01-03" "2017-01-04" "2017-01-05"
##  [6] "2017-01-05" "2017-01-05" "2017-01-05" "2017-01-06" "2017-01-06"
## [11] "2017-01-07" "2017-01-07" "2017-01-07" "2017-01-08" "2017-01-08"
## [16] "2017-01-09" "2017-01-09" "2017-01-09" "2017-01-10" "2017-01-10"
## [21] "2017-01-10" "2017-01-12" "2017-01-12" "2017-01-12" "2017-01-12"
## [26] "2017-01-13" "2017-01-13" "2017-01-15" "2017-01-19" "2017-01-19"
## [31] "2017-01-20" "2017-01-20" "2017-01-21" "2017-01-21" "2017-01-22"
## [36] "2017-01-24" "2017-01-24" "2017-01-25" "2017-01-25" "2017-01-26"
## [41] "2017-01-26" "2017-01-27" "2017-01-29" "2017-01-31" "2017-01-31"
febrero$FECHA
##  [1] "2017-02-01" "2017-02-02" "2017-02-02" "2017-02-02" "2017-02-03"
##  [6] "2017-02-03" "2017-02-03" "2017-02-04" "2017-02-04" "2017-02-05"
## [11] "2017-02-06" "2017-02-07" "2017-02-07" "2017-02-07" "2017-02-08"
## [16] "2017-02-09" "2017-02-10" "2017-02-10" "2017-02-10" "2017-02-12"
## [21] "2017-02-13" "2017-02-14" "2017-02-14" "2017-02-14" "2017-02-14"
## [26] "2017-02-15" "2017-02-15" "2017-02-16" "2017-02-16" "2017-02-17"
## [31] "2017-02-18" "2017-02-18" "2017-02-19" "2017-02-19" "2017-02-19"
## [36] "2017-02-20" "2017-02-22" "2017-02-24" "2017-02-25" "2017-02-25"
## [41] "2017-02-25" "2017-02-25" "2017-02-27" "2017-02-28" "2017-02-28"
## [46] "2017-02-28" "2017-02-28" "2017-02-28" "2017-02-28"
marzo$FECHA
##  [1] "2017-03-01" "2017-03-02" "2017-03-03" "2017-03-03" "2017-03-03"
##  [6] "2017-03-05" "2017-03-06" "2017-03-07" "2017-03-07" "2017-03-07"
## [11] "2017-03-07" "2017-03-08" "2017-03-08" "2017-03-08" "2017-03-09"
## [16] "2017-03-09" "2017-03-09" "2017-03-09" "2017-03-10" "2017-03-10"
## [21] "2017-03-10" "2017-03-10" "2017-03-10" "2017-03-10" "2017-03-10"
## [26] "2017-03-12" "2017-03-13" "2017-03-14" "2017-03-14" "2017-03-15"
## [31] "2017-03-15" "2017-03-16" "2017-03-16" "2017-03-17" "2017-03-17"
## [36] "2017-03-17" "2017-03-18" "2017-03-19" "2017-03-19" "2017-03-20"
## [41] "2017-03-20" "2017-03-20" "2017-03-21" "2017-03-21" "2017-03-21"
## [46] "2017-03-21" "2017-03-21" "2017-03-22" "2017-03-23" "2017-03-23"
## [51] "2017-03-24" "2017-03-25" "2017-03-26" "2017-03-27" "2017-03-28"
## [56] "2017-03-29" "2017-03-30" "2017-03-31" "2017-03-31" "2017-03-31"

Lo que queremos es conocer cuantoa accidentes hubo por 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 graficamente los datos

Utilizamos plot

plot(resumen, type="b")

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

se analizo un conjunto de datos que almacenaba el registro de los accidentes en bicicletas ocurridos en el año 2017

se obtuvieron los datos de cuantos accidentes ocurrieron por mes, lo cual fue representado por medio de tabla y por grafica.