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

Creando un DataFrame con el resumen de la informacion minimos y maximos

#resumen <- data.frame(minimos, maximos)
#resumen

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