Objetivo: Objetivo: Determinar la cantidad de accitedente que hubo en el año 2018 por distrito en la ciudad de Madrid
Las librerías necesarias
library(readr) # Usar Libreria
Cargar los datos desde INTERNET
bicis2018 <- read.csv("https://raw.githubusercontent.com/rpizarrog/Curso-Titulacion-Data-Science-/master/2019/Datos/AccidentesBicicletas_2018.csv",
encoding = "UTF-8")
class(bicis2018)
## [1] "data.frame"
#bicis2018
Determinar cuantos atributos de distrito y saccar cuales son
# bicis2018$DISTRITO
distritos <- unique(bicis2018$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 ...
Determinar los registros o filas de cada distrito
dist1 <- subset(bicis2018, bicis2018$DISTRITO == distritos[1])
dist2 <- subset(bicis2018, bicis2018$DISTRITO == distritos[2])
dist3 <- subset(bicis2018, bicis2018$DISTRITO == distritos[3])
dist4 <- subset(bicis2018, bicis2018$DISTRITO == distritos[4])
dist5 <- subset(bicis2018, bicis2018$DISTRITO == distritos[5])
dist6 <- subset(bicis2018, bicis2018$DISTRITO == distritos[6])
dist7 <- subset(bicis2018, bicis2018$DISTRITO == distritos[7])
dist8 <- subset(bicis2018, bicis2018$DISTRITO == distritos[8])
dist9 <- subset(bicis2018, bicis2018$DISTRITO == distritos[9])
dist10 <- subset(bicis2018, bicis2018$DISTRITO == distritos[10])
dist11 <- subset(bicis2018, bicis2018$DISTRITO == distritos[11])
dist12 <- subset(bicis2018, bicis2018$DISTRITO == distritos[12])
dist13 <- subset(bicis2018, bicis2018$DISTRITO == distritos[13])
dist14 <- subset(bicis2018, bicis2018$DISTRITO == distritos[14])
dist15 <- subset(bicis2018, bicis2018$DISTRITO == distritos[15])
dist16 <- subset(bicis2018, bicis2018$DISTRITO == distritos[16])
dist17 <- subset(bicis2018, bicis2018$DISTRITO == distritos[17])
dist18 <- subset(bicis2018, bicis2018$DISTRITO == distritos[18])
dist19 <- subset(bicis2018, bicis2018$DISTRITO == distritos[19])
dist20 <- subset(bicis2018, bicis2018$DISTRITO == distritos[20])
dist21 <- subset(bicis2018, bicis2018$DISTRITO == distritos[21])
Verificamos registros de algunos distritos
dist21$FECHA # Solo Fecha
## [1] 01/06/2018 01/06/2018 21/06/2018 25/06/2018 11/07/2018 21/07/2018
## [7] 29/10/2018 17/11/2018
## 298 Levels: 01/01/2018 01/02/2018 01/04/2018 01/05/2018 ... 31/10/2018
dist5$DISTRITO # Solo el 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 ...
Determinar 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 construr 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
Uso de cuartiles
# Cuartile 1
q1 <- quantile(resumen$accidentes, 0.25) # al 25%
# Cuartile 3 al 75%
q3 <- quantile(resumen$accidentes, 0.75) # al 75%
q1
## 25%
## 18
q3
## 75%
## 36
Determinar los principales datos que tienen menos y mas accidentes
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
Poner nombres de columnas a resumen y mostrarlo
#colnames(resumen) <- c("Distrito", "Accidentes")
#resumen # Volver a poner resumen
Con el analisis de la informacion mediante los cuartiles nos podemos dar cuenta en cuales distritos se produsen menos accidentes destacando Barajas con solo 8 accidentes de bicicleta en todo el año 2018, por el contrario de los distritos que mas accidentes tiene nos llma mucho la tencion el centro por sus 124 accidentes que es mas del doble del segundo lugar en mas accidentes que es Barajas con 52 accidentes de bicicletas