Objetivo: Esta práctica determina en que Distrito de Madrid suceden mayor y menor numero de accidentes de bicicletas de un conjunto de datos del año 2018.

librerias 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")

#bicis2018

Determinar el aributo de distrito y sacar 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 alg[un distrito

dist1$FECHA # Solo la fecha
##  [1] 01/01/2018 09/01/2018 24/01/2018 24/01/2018 12/03/2018 28/03/2018
##  [7] 28/03/2018 29/03/2018 21/04/2018 14/05/2018 21/05/2018 12/06/2018
## [13] 18/06/2018 21/06/2018 25/06/2018 26/06/2018 05/07/2018 05/07/2018
## [19] 10/07/2018 22/07/2018 03/08/2018 05/08/2018 11/08/2018 26/08/2018
## [25] 30/08/2018 05/09/2018 10/09/2018 25/09/2018 13/10/2018 16/10/2018
## [31] 27/10/2018 08/11/2018 29/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 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
# 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
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 del Análisis

Analizando el conjunto de datos de los accidentes 2018 sucitados en varios distritos de España, se puede determinar que el distrito que menor incidencia de accidentes tuvo es Barajas con 8 accidentes, y el mayor numero de accidentes fue el Centro con 124 accidentes.