Objetivo: Esta práctica determina el distrito deonde suceden mas y menos accidentes del año 2018
Cargar librerias necesarias
library(readr) #La libreria
Cargar los datos que estan en INTERNET
accidentes2018 <- read.csv("https://raw.githubusercontent.com/rpizarrog/Curso-Titulacion-Data-Science-/master/2019/Datos/AccidentesBicicletas_2018.csv",
encoding = "UTF-8")
class(accidentes2018) # Devuelve el tipo de datos. Quermos un data.frame
## [1] "data.frame"
Definiendo los nombres de columnad adecuados
# VAMOS A TRABAJAR CON accidentes2018
names(accidentes2018)
## [1] "FECHA" "RANGO.HORARIO"
## [3] "DIA.SEMANA" "DISTRITO"
## [5] "LUGAR.ACCIDENTE" "N.U.00BA."
## [7] "N.U.00BA..PARTE" "CPFA.Granizo"
## [9] "CPFA.Hielo" "CPFA.Lluvia"
## [11] "CPFA.Niebla" "CPFA.Seco"
## [13] "CPFA.Nieve" "CPSV.Mojada"
## [15] "CPSV.Aceite" "CPSV.Barro"
## [17] "CPSV.Grava.Suelta" "CPSV.Hielo"
## [19] "CPSV.Seca.Y.Limpia" "X..N.U.00BA..VICTIMAS"
## [21] "TIPO.ACCIDENTE" "Tipo.Vehiculo"
## [23] "TIPO.PERSONA" "SEXO"
## [25] "LESIVIDAD" "Tramo.Edad"
# Cambiamos el nombre de estos atributo de accidentes2018
columnas <- colnames(accidentes2018)
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(accidentes2018) <- columnas
names(accidentes2018) # Ahora como se ven los nombres de columnas
## [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"
Asi quedaron los datos
#accidentes2018
Determinar el atributo distrito y ver cuales son
distritos <- unique(accidentes2018$DISTRITO)
distritos # Son los distritos que hay en Madrid
## [1] ARGANZUELA CENTRO
## [3] SALAMANCA CIUDAD LINEAL
## [5] LATINA SAN BLAS
## [7] VILLA DE VALLECAS RETIRO
## [9] FUENCARRAL-EL PARDO USERA
## [11] TETUAN CHAMBERI
## [13] MONCLOA-ARAVACA HORTALEZA
## [15] VILLAVERDE CARABANCHEL
## [17] CHAMARTIN MORATALAZ
## [19] VICALVARO PUENTE DE VALLECAS
## [21] BARAJAS
## 21 Levels: ARGANZUELA ...
Vamos a encontrar los accidentes por DISTRITO
dist1 <- subset(accidentes2018, DISTRITO == distritos[1])
dist2 <- subset(accidentes2018, DISTRITO == distritos[2])
dist3 <- subset(accidentes2018, DISTRITO == distritos[3])
dist4 <- subset(accidentes2018, DISTRITO == distritos[4])
dist5 <- subset(accidentes2018, DISTRITO == distritos[5])
dist6 <- subset(accidentes2018, DISTRITO == distritos[6])
dist7 <- subset(accidentes2018, DISTRITO == distritos[7])
dist8 <- subset(accidentes2018, DISTRITO == distritos[8])
dist9 <- subset(accidentes2018, DISTRITO == distritos[9])
dist10 <- subset(accidentes2018, DISTRITO == distritos[10])
dist11 <- subset(accidentes2018, DISTRITO == distritos[11])
dist12 <- subset(accidentes2018, DISTRITO == distritos[12])
dist13 <- subset(accidentes2018, DISTRITO == distritos[13])
dist14 <- subset(accidentes2018, DISTRITO == distritos[14])
dist15 <- subset(accidentes2018, DISTRITO == distritos[15])
dist16 <- subset(accidentes2018, DISTRITO == distritos[16])
dist17 <- subset(accidentes2018, DISTRITO == distritos[17])
dist18 <- subset(accidentes2018, DISTRITO == distritos[18])
dist19 <- subset(accidentes2018, DISTRITO == distritos[19])
dist20 <- subset(accidentes2018, DISTRITO == distritos[20])
dist21 <- subset(accidentes2018, DISTRITO == distritos[21])
Mostramos algunos regiistros
dist1$FECHA
## [1] "2018-01-01" "2018-01-09" "2018-01-24" "2018-01-24" "2018-03-12"
## [6] "2018-03-28" "2018-03-28" "2018-03-29" "2018-04-21" "2018-05-14"
## [11] "2018-05-21" "2018-06-12" "2018-06-18" "2018-06-21" "2018-06-25"
## [16] "2018-06-26" "2018-07-05" "2018-07-05" "2018-07-10" "2018-07-22"
## [21] "2018-08-03" "2018-08-05" "2018-08-11" "2018-08-26" "2018-08-30"
## [26] "2018-09-05" "2018-09-10" "2018-09-25" "2018-10-13" "2018-10-16"
## [31] "2018-10-27" "2018-11-08" "2018-11-29"
dist5$DISTRITO
## [1] LATINA LATINA
## [3] LATINA LATINA
## [5] LATINA LATINA
## [7] LATINA LATINA
## [9] LATINA LATINA
## [11] LATINA LATINA
## [13] LATINA LATINA
## [15] LATINA LATINA
## [17] LATINA LATINA
## [19] LATINA LATINA
## [21] LATINA LATINA
## [23] LATINA LATINA
## [25] LATINA LATINA
## [27] LATINA LATINA
## [29] LATINA LATINA
## [31] LATINA LATINA
## [33] LATINA LATINA
## [35] LATINA
## 21 Levels: ARGANZUELA ...
Utilizamos la función length() para ver cuantos registros por cada distrito
dist1Accidentes <- length(dist1$DISTRITO)
dist2Accidentes <- length(dist2$DISTRITO)
dist3Accidentes <- length(dist3$DISTRITO)
dist4Accidentes <- length(dist4$DISTRITO)
dist5Accidentes <- length(dist5$DISTRITO)
dist6Accidentes <- length(dist6$DISTRITO)
dist7Accidentes <- length(dist7$DISTRITO)
dist8Accidentes <- length(dist8$DISTRITO)
dist9Accidentes <- length(dist9$DISTRITO)
dist10Accidentes <- length(dist10$DISTRITO)
dist11Accidentes <- length(dist11$DISTRITO)
dist12Accidentes <- length(dist12$DISTRITO)
dist13Accidentes <- length(dist13$DISTRITO)
dist14Accidentes <- length(dist14$DISTRITO)
dist15Accidentes <- length(dist15$DISTRITO)
dist16Accidentes <- length(dist16$DISTRITO)
dist17Accidentes <- length(dist17$DISTRITO)
dist18Accidentes <- length(dist18$DISTRITO)
dist19Accidentes <- length(dist19$DISTRITO)
dist20Accidentes <- length(dist20$DISTRITO)
dist21Accidentes <- length(dist21$DISTRITO)
Crer un data frame con el resumen de los datos por cada distrito
dist1Accidentes
## [1] 33
dist2Accidentes
## [1] 124
dist3Accidentes
## [1] 48
dist4Accidentes
## [1] 26
dist5Accidentes
## [1] 35
dist6Accidentes
## [1] 24
dist7Accidentes
## [1] 15
dist8Accidentes
## [1] 52
dist9Accidentes
## [1] 33
dist10Accidentes
## [1] 18
dist11Accidentes
## [1] 34
dist12Accidentes
## [1] 51
dist13Accidentes
## [1] 51
dist14Accidentes
## [1] 22
dist15Accidentes
## [1] 12
dist16Accidentes
## [1] 36
dist17Accidentes
## [1] 26
dist18Accidentes
## [1] 13
dist19Accidentes
## [1] 10
dist20Accidentes
## [1] 29
dist21Accidentes
## [1] 8
Ahora a construir un solo data frame resumen con disrito y cantidad
accidentes <- c(dist1Accidentes, dist2Accidentes, dist3Accidentes, dist4Accidentes, dist5Accidentes, dist6Accidentes, dist7Accidentes, dist8Accidentes, dist9Accidentes, dist10Accidentes, dist11Accidentes, dist12Accidentes, dist13Accidentes, dist14Accidentes, dist15Accidentes, dist16Accidentes, dist17Accidentes, dist18Accidentes, dist19Accidentes, dist20Accidentes, dist21Accidentes)
resumen <- data.frame(distritos, accidentes)
resumen
## distritos accidentes
## 1 ARGANZUELA 33
## 2 CENTRO 124
## 3 SALAMANCA 48
## 4 CIUDAD LINEAL 26
## 5 LATINA 35
## 6 SAN BLAS 24
## 7 VILLA DE VALLECAS 15
## 8 RETIRO 52
## 9 FUENCARRAL-EL PARDO 33
## 10 USERA 18
## 11 TETUAN 34
## 12 CHAMBERI 51
## 13 MONCLOA-ARAVACA 51
## 14 HORTALEZA 22
## 15 VILLAVERDE 12
## 16 CARABANCHEL 36
## 17 CHAMARTIN 26
## 18 MORATALAZ 13
## 19 VICALVARO 10
## 20 PUENTE DE VALLECAS 29
## 21 BARAJAS 8
Cuartiles
# Cuartil 1 al 25%
q1 <- quantile(resumen$accidentes, 0.25) # al 25%
# Cuartil 3 al 75%
q3 <- quantile(resumen$accidentes, 0.75) # al 75%
q1
## 25%
## 18
q3
## 75%
## 36
Minimos y Maximos
minimos <- subset(resumen, accidentes <= q1)
maximos <- subset(resumen, accidentes >= q3)
minimos
## distritos accidentes
## 7 VILLA DE VALLECAS 15
## 10 USERA 18
## 15 VILLAVERDE 12
## 18 MORATALAZ 13
## 19 VICALVARO 10
## 21 BARAJAS 8
maximos
## distritos accidentes
## 2 CENTRO 124
## 3 SALAMANCA 48
## 8 RETIRO 52
## 12 CHAMBERI 51
## 13 MONCLOA-ARAVACA 51
## 16 CARABANCHEL 36
Interpretacion de la practica
En esta practica se analizaron los accidentes en bicicleta del año 2018 por distrito, mediante los cuartiles al 25% se puede observar que el distrito con menos accidentes es Barajas con 8 accidentes y mediante el cuartil al 75% se observa que el distrito del centro es el distrito con mas accidentes con un total de 124.