Objetivo: Esta práctica determina el número de accidentes que hubo en el 2018 por distrito
Las librerías necesarias
library(readr) # La libreria
Cargar los datos que están en INTERNET
bicis2018 <- read.csv("https://raw.githubusercontent.com/rpizarrog/Curso-Titulacion-Data-Science-/master/2019/Datos/AccidentesBicicletas_2018.csv",encoding = "UTF-8")
Determinar el aributo de distrito y saccar cuales son
distritos <- unique(bicis2018$DISTRITO)
distritos
## [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 alg[un distrito
dist7
## FECHA RANGO.HORARIO DIA.SEMANA DISTRITO
## 9 04/01/2018 DE 15:00 A 15:59 JUEVES VILLA DE VALLECAS
## 26 20/01/2018 DE 8:00 A 8:59 SABADO VILLA DE VALLECAS
## 48 29/01/2018 DE 15:00 A 15:59 LUNES VILLA DE VALLECAS
## 80 18/02/2018 DE 12:00 A 12:59 DOMINGO VILLA DE VALLECAS
## 180 26/04/2018 DE 20:00 A 20:59 JUEVES VILLA DE VALLECAS
## 196 06/05/2018 DE 9:00 A 9:59 DOMINGO VILLA DE VALLECAS
## 263 08/06/2018 DE 16:00 A 16:59 VIERNES VILLA DE VALLECAS
## 265 09/06/2018 DE 10:00 A 10:59 SABADO VILLA DE VALLECAS
## 513 24/09/2018 DE 11:00 A 11:59 LUNES VILLA DE VALLECAS
## 515 25/09/2018 DE 14:00 A 14:59 MARTES VILLA DE VALLECAS
## 529 28/09/2018 DE 20:00 A 20:59 VIERNES VILLA DE VALLECAS
## 555 08/10/2018 DE 12:00 A 12:59 LUNES VILLA DE VALLECAS
## 607 01/11/2018 DE 10:00 A 10:59 JUEVES VILLA DE VALLECAS
## 640 18/11/2018 DE 10:00 A 10:59 DOMINGO VILLA DE VALLECAS
## 657 27/11/2018 DE 14:00 A 14:59 MARTES VILLA DE VALLECAS
## LUGAR.ACCIDENTE
## 9 CALLE DE LA SIERRA DE TORNAVACAS - CALLE DE SAN JAIME
## 26 AVENIDA DE LA GAVIA - AVENIDA DEL MAYORAZGO
## 48 CALLE DE SIERRA GORDA - PLAZA DE JUAN DE MALASA<d1>A
## 80 AVENIDA DEL MAYORAZGO - CALLE DE VILLAMANTA
## 180 CALLE DE SIERRA DE GUADALUPE NUM
## 196 AVENIDA DEL MAYORAZGO - CAMINO DE LA MAGDALENA
## 263 AVENIDA DEL ENSANCHE DE VALLECAS NUM
## 265 CARRETERA DE VILLAVERDE A VALLECAS NUM
## 513 CALLE REAL DE ARGANDA NUM
## 515 CALLE DE PUENTELARRA NUM
## 529 CALLE DE CABEZA MESADA NUM
## 555 AVENIDA DE SANTA EUGENIA - CALLE DE LA VIRGEN DE LAS VI<d1>AS
## 607 AVENIDA DE LAS SUERTES NUM
## 640 CARRETERA DE VILLAVERDE A VALLECAS - POLIGONO LA ATALAYUELA
## 657 AVENIDA DEL ENSANCHE DE VALLECAS - CALLE DE VILLAR DEL POZO
## N.U.00BA. N.U.00BA..PARTE CPFA.Granizo CPFA.Hielo CPFA.Lluvia
## 9 0 2018/156 NO NO NO
## 26 0 2018/867 NO NO NO
## 48 0 2018/1170 NO NO NO
## 80 0 2018/1948 NO NO NO
## 180 9 2018/4367 NO NO NO
## 196 0 2018/4854 NO NO NO
## 263 56 2018/5849 NO NO SI
## 265 250 2018/5999 NO NO NO
## 513 10 2018/10723 NO NO NO
## 515 7 2018/10721 NO NO NO
## 529 5 2018/10898 NO NO NO
## 555 0 2018/11578 NO NO NO
## 607 13 2018/13869 NO NO NO
## 640 0 2018/14243 NO NO NO
## 657 0 2018/14938 NO NO NO
## CPFA.Niebla CPFA.Seco CPFA.Nieve CPSV.Mojada CPSV.Aceite CPSV.Barro
## 9 NO SI NO NO NO NO
## 26 NO SI NO SI NO NO
## 48 NO SI NO NO NO NO
## 80 NO SI NO NO NO NO
## 180 NO SI NO NO NO NO
## 196 NO SI NO NO NO NO
## 263 NO NO NO SI NO NO
## 265 NO SI NO NO NO NO
## 513 NO SI NO NO NO NO
## 515 NO SI NO NO NO NO
## 529 NO SI NO NO NO NO
## 555 NO SI NO NO NO NO
## 607 NO SI NO NO NO NO
## 640 NO SI NO NO NO NO
## 657 NO SI NO NO NO NO
## CPSV.Grava.Suelta CPSV.Hielo CPSV.Seca.Y.Limpia X..N.U.00BA..VICTIMAS
## 9 NO NO SI 1
## 26 NO NO NO 1
## 48 NO NO SI 1
## 80 NO NO SI 1
## 180 NO NO SI 1
## 196 SI NO NO 1
## 263 NO NO NO 1
## 265 NO NO SI 1
## 513 NO NO SI 1
## 515 NO NO SI 1
## 529 NO NO SI 1
## 555 NO NO SI 1
## 607 NO NO SI 1
## 640 NO NO SI 1
## 657 NO NO SI 1
## TIPO.ACCIDENTE
## 9 COLISI<d3>N DOBLE
## 26 COLISI<d3>N DOBLE
## 48 COLISI<d3>N DOBLE
## 80 COLISI<d3>N DOBLE
## 180 CA<cd>DA BICICLETA
## 196 CA<cd>DA BICICLETA
## 263 COLISI<d3>N DOBLE
## 265 COLISI<d3>N DOBLE
## 513 ATROPELLO
## 515 COLISI<d3>N DOBLE
## 529 ATROPELLO
## 555 COLISI<d3>N DOBLE
## 607 COLISI<d3>N DOBLE
## 640 COLISI<d3>N DOBLE
## 657 CA<cd>DA BICICLETA
## Tipo.Vehiculo TIPO.PERSONA SEXO
## 9 BICICLETA CONDUCTOR HOMBRE
## 26 BICICLETA CONDUCTOR HOMBRE
## 48 BICICLETA CONDUCTOR HOMBRE
## 80 BICICLETA CONDUCTOR HOMBRE
## 180 BICICLETA CONDUCTOR HOMBRE
## 196 BICICLETA CONDUCTOR HOMBRE
## 263 BICICLETA CONDUCTOR HOMBRE
## 265 BICICLETA CONDUCTOR HOMBRE
## 513 BICICLETA CONDUCTOR HOMBRE
## 515 BICICLETA CONDUCTOR HOMBRE
## 529 BICICLETA CONDUCTOR HOMBRE
## 555 BICICLETA CONDUCTOR HOMBRE
## 607 BICICLETA CONDUCTOR HOMBRE
## 640 BICICLETA CONDUCTOR HOMBRE
## 657 BICICLETA CONDUCTOR MUJER
## LESIVIDAD Tramo.Edad
## 9 HL DE 35 A 39 A<d1>OS
## 26 HL DE 35 A 39 A<d1>OS
## 48 HL DE 50 A 54 A<d1>OS
## 80 HL DE 60 A 64 A<d1>OS
## 180 HL DE 25 A 29 A<d1>OS
## 196 HG DE 40 A 44 A<d1>OS
## 263 HG DE 10 A 14 A<d1>OS
## 265 HL DE 35 A 39 A<d1>OS
## 513 IL DE 18 A 20 A<d1>OS
## 515 HL DE 40 A 44 A<d1>OS
## 529 IL DE 45 A 49 A<d1>OS
## 555 HL DE 30 A 34 ANOS
## 607 HL DE 50 A 54 A<d1>OS
## 640 HL DE 35 A 39 A<d1>OS
## 657 HL DE 55 A 59 A<d1>OS
Solo Fecha
dist7$FECHA
## [1] 04/01/2018 20/01/2018 29/01/2018 18/02/2018 26/04/2018 06/05/2018
## [7] 08/06/2018 09/06/2018 24/09/2018 25/09/2018 28/09/2018 08/10/2018
## [13] 01/11/2018 18/11/2018 27/11/2018
## 298 Levels: 01/01/2018 01/02/2018 01/04/2018 01/05/2018 ... 31/10/2018
Solo el DISTRITO
dist3$DISTRITO # Solo el DISTRITO
## [1] SALAMANCA SALAMANCA
## [3] SALAMANCA SALAMANCA
## [5] SALAMANCA SALAMANCA
## [7] SALAMANCA SALAMANCA
## [9] SALAMANCA SALAMANCA
## [11] SALAMANCA SALAMANCA
## [13] SALAMANCA SALAMANCA
## [15] SALAMANCA SALAMANCA
## [17] SALAMANCA SALAMANCA
## [19] SALAMANCA SALAMANCA
## [21] SALAMANCA SALAMANCA
## [23] SALAMANCA SALAMANCA
## [25] SALAMANCA SALAMANCA
## [27] SALAMANCA SALAMANCA
## [29] SALAMANCA SALAMANCA
## [31] SALAMANCA SALAMANCA
## [33] SALAMANCA SALAMANCA
## [35] SALAMANCA SALAMANCA
## [37] SALAMANCA SALAMANCA
## [39] SALAMANCA SALAMANCA
## [41] SALAMANCA SALAMANCA
## [43] SALAMANCA SALAMANCA
## [45] SALAMANCA SALAMANCA
## [47] SALAMANCA SALAMANCA
## 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
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
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
Maximos y Minimos
minimos <- subset(resumen, accidentes <= q1)
maximos <- subset(resumen, accidentes >= q3)
#resumen <- data.frame(minimos, maximos)
#resumen
Minimos
minimos
## distritos accidentes
## 7 VILLA DE VALLECAS 15
## 10 USERA 18
## 15 VILLAVERDE 12
## 18 MORATALAZ 13
## 19 VICALVARO 10
## 21 BARAJAS 8
Maximos
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
colnames(resumen) <- c("Distrito", "Accidentes")
resumen # Volver a poner resumen
## Distrito 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
De acuerdo al conjunto de datos el resumen muestra que el Distrito CENTRO hubo más accidentes con un total de 124 y el distrito BARAJAS es el de menor índice de accidentes con un total de 8 accidentes, de los cuales 18 distritos están en el promedio del 25% cuartile y 36 distritos están están en el promedio del cuartile del 75%