Objetivo: Determinar la cantidad de accidentes que hubo en el año 2018 por distrito en la ciudad de Madrid

Librerias

library(readr)

Cargar los datos

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

colnames(maximos) <- c("Distrito", "Accidentes")
colnames(minimos) <- c("Distrito", "Accidentes")

minimos
##                          Distrito Accidentes
## 7  VILLA DE VALLECAS                      15
## 10 USERA                                  18
## 15 VILLAVERDE                             12
## 18 MORATALAZ                              13
## 19 VICALVARO                              10
## 21 BARAJAS                                 8
maximos
##                          Distrito Accidentes
## 2  CENTRO                                124
## 3  SALAMANCA                              48
## 8  RETIRO                                 52
## 12 CHAMBERI                               51
## 13 MONCLOA-ARAVACA                        51
## 16 CARABANCHEL                            36

Visualizar minimos y maximos