Se requiere graficar por medio de mapas el uso de medio de transporte, origen y destino en la ciudad de Cali.
library(sf)
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library(sp)
library(raster)
Despues de las librerías:
cali = shapefile("C:/Users/User/Documents/Unidad1_AnaGeoEsp/Cali/Comunas.shp")
cali
## class : SpatialPolygonsDataFrame
## features : 22
## extent : 1053868, 1068492, 860190.2, 879441.5 (xmin, xmax, ymin, ymax)
## crs : +proj=tmerc +lat_0=3.441883333 +lon_0=-76.5205625 +k=1 +x_0=1061900.18 +y_0=872364.63 +a=6379137 +rf=298.257222101 +units=m +no_defs
## variables : 4
## names : OBJECTID, gid, comuna, nombre
## min values : 1, 89, 1, Comuna 1
## max values : 22, 110, 22, Comuna 9
plot(cali)
Ahora se procede a cargar los datos requeridos:
require(readxl)
## Loading required package: readxl
encuesta_od = read_excel("C:/Users/User/Documents/Unidad1_AnaGeoEsp/EncuestaOrigenDestino.xlsx", sheet = "Hoja1")
## New names:
## • `MUNICIPIO` -> `MUNICIPIO...7`
## • `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA / HITO /
## DIRECCIÓN` -> `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA
## / HITO / DIRECCIÓN...8`
## • `MUNICIPIO` -> `MUNICIPIO...11`
## • `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA / HITO /
## DIRECCIÓN` -> `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA
## / HITO / DIRECCIÓN...12`
## • `OTRO ¿CUÁL?` -> `OTRO ¿CUÁL?...17`
## • `OTRO ¿CUÁL?` -> `OTRO ¿CUÁL?...24`
# Crear un nuevo dataframe llamado comunas_ori
comunas_ori <- encuesta_od
cali2 <- cali
# Filtrar comunas_ori y asignar el resultado a comunas_ori2
comunas_ori2 <- comunas_ori[comunas_ori$`comuna origen` != "Fuera de Cali" & comunas_ori$`comuna origen` != "0", ]
comunas_ori2$`comuna origen` <- as.integer(comunas_ori2$`comuna origen`)
head(comunas_ori2)
## # A tibble: 6 × 28
## FECHA `ID ESTACIÓN` ESTACIÓN ACCESO MOVIMIENTO
## <dttm> <dbl> <chr> <chr> <chr>
## 1 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 2 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 3 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 4 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 5 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 6 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## # ℹ 23 more variables: `Hora de Encuesta` <dttm>, MUNICIPIO...7 <chr>,
## # `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA / HITO / DIRECCIÓN...8` <chr>,
## # `Codigo Origen_SDG` <chr>, `¿QUE ESTABA HACIENDO EN ESE LUGAR?` <dbl>,
## # MUNICIPIO...11 <chr>,
## # `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA / HITO / DIRECCIÓN...12` <chr>,
## # `Codigo Destino_SDG` <chr>, `¿QUE VA HACER A ESE LUGAR?` <dbl>,
## # `ESTRATO EN SU VIVIENDA` <dbl>, …
conteo <- table(comunas_ori2$`comuna origen`)
conteoGene <- data.frame(comuna = names(conteo), conteo = as.vector(conteo))
conteoGene
## comuna conteo
## 1 1 794
## 2 2 2968
## 3 3 2121
## 4 4 1493
## 5 5 664
## 6 6 998
## 7 7 734
## 8 8 1124
## 9 9 952
## 10 10 1401
## 11 11 925
## 12 12 348
## 13 13 1238
## 14 14 685
## 15 15 1171
## 16 16 993
## 17 17 2377
## 18 18 1536
## 19 19 2850
## 20 20 733
## 21 21 818
## 22 22 1153
Procedemos a graficar:
conteoGene1 <- merge(cali2, conteoGene, by = "comuna")
spplot(conteoGene1[,5])
bici_ori <- which(comunas_ori2$'TIPO DE VEHÍCULO' == 1)
conteos_bicori <- table(comunas_ori2$`comuna origen`[bici_ori])
conteos_bior <- data.frame(comuna = names(conteos_bicori), conteo = as.vector(conteos_bicori))
conteos_bior
## comuna conteo
## 1 1 36
## 2 2 159
## 3 3 99
## 4 4 74
## 5 5 38
## 6 6 44
## 7 7 35
## 8 8 52
## 9 9 53
## 10 10 82
## 11 11 52
## 12 12 14
## 13 13 76
## 14 14 37
## 15 15 70
## 16 16 73
## 17 17 141
## 18 18 111
## 19 19 141
## 20 20 46
## 21 21 44
## 22 22 55
bici_origr <- merge(cali2, conteos_bior, by = "comuna")
spplot(bici_origr[,5])
### Mapa por tipo de vehículo moto por origen
moto_ori <- which(comunas_ori2$'TIPO DE VEHÍCULO' == 2)
conteos_motori <- table(comunas_ori2$`comuna origen`[moto_ori])
conteos_moor <- data.frame(comuna = names(conteos_motori), conteo = as.vector(conteos_motori))
conteos_moor
## comuna conteo
## 1 1 375
## 2 2 1414
## 3 3 970
## 4 4 720
## 5 5 319
## 6 6 473
## 7 7 350
## 8 8 552
## 9 9 413
## 10 10 675
## 11 11 431
## 12 12 176
## 13 13 554
## 14 14 310
## 15 15 536
## 16 16 450
## 17 17 1136
## 18 18 746
## 19 19 1280
## 20 20 339
## 21 21 378
## 22 22 515
moto_origr <- merge(cali2, conteos_moor, by = "comuna")
spplot(moto_origr[,5])
### Mapa por tipo de vehículo carro por origen
carr_ori <- which(comunas_ori2$'TIPO DE VEHÍCULO' == 3)
conteos_carori <- table(comunas_ori2$`comuna origen`[carr_ori])
conteos_caor <- data.frame(comuna = names(conteos_carori), conteo = as.vector(conteos_carori))
conteos_caor
## comuna conteo
## 1 1 301
## 2 2 1121
## 3 3 854
## 4 4 551
## 5 5 241
## 6 6 389
## 7 7 283
## 8 8 420
## 9 9 382
## 10 10 529
## 11 11 361
## 12 12 123
## 13 13 486
## 14 14 272
## 15 15 456
## 16 16 385
## 17 17 899
## 18 18 559
## 19 19 1165
## 20 20 272
## 21 21 328
## 22 22 489
carr_origr <- merge(cali2, conteos_caor, by = "comuna")
spplot(carr_origr[,5])
# Crear un nuevo dataframe llamado comunas_ori
comunas_des <- encuesta_od
cali2 <- cali
# Filtrar comunas_ori y asignar el resultado a comunas_ori2
comunas_des2 <- comunas_des[comunas_des$`comuna destino` != "Fuera de Cali" & comunas_des$`comuna destino` != "0", ]
comunas_des2$`comuna destino` <- as.integer(comunas_des2$`comuna destino`)
head(comunas_des2)
## # A tibble: 6 × 28
## FECHA `ID ESTACIÓN` ESTACIÓN ACCESO MOVIMIENTO
## <dttm> <dbl> <chr> <chr> <chr>
## 1 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 2 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 3 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 4 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 5 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## 6 2015-06-01 00:00:00 1 Avenida 6N X Calle 70N NORTE MOV 1
## # ℹ 23 more variables: `Hora de Encuesta` <dttm>, MUNICIPIO...7 <chr>,
## # `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA / HITO / DIRECCIÓN...8` <chr>,
## # `Codigo Origen_SDG` <chr>, `¿QUE ESTABA HACIENDO EN ESE LUGAR?` <dbl>,
## # MUNICIPIO...11 <chr>,
## # `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA / HITO / DIRECCIÓN...12` <chr>,
## # `Codigo Destino_SDG` <chr>, `¿QUE VA HACER A ESE LUGAR?` <dbl>,
## # `ESTRATO EN SU VIVIENDA` <dbl>, …
conteo <- table(comunas_des2$`comuna destino`)
conteoGene <- data.frame(comuna = names(conteo), conteo = as.vector(conteo))
conteoGene
## comuna conteo
## 1 1 230
## 2 2 4810
## 3 3 3859
## 4 4 1856
## 5 5 522
## 6 6 716
## 7 7 748
## 8 8 1025
## 9 9 1279
## 10 10 927
## 11 11 564
## 12 12 246
## 13 13 673
## 14 14 379
## 15 15 579
## 16 16 743
## 17 17 2164
## 18 18 662
## 19 19 3158
## 20 20 351
## 21 21 515
## 22 22 1860
Procedemos a graficar:
conteoGene1 <- merge(cali2, conteoGene, by = "comuna")
spplot(conteoGene1[,5])
bici_des <- which(comunas_des2$'TIPO DE VEHÍCULO' == 1)
conteos_bicdes <- table(comunas_des2$`comuna destino`[bici_des])
conteos_bide <- data.frame(comuna = names(conteos_bicdes), conteo = as.vector(conteos_bicdes))
conteos_bide
## comuna conteo
## 1 1 12
## 2 2 218
## 3 3 189
## 4 4 85
## 5 5 41
## 6 6 34
## 7 7 41
## 8 8 54
## 9 9 65
## 10 10 43
## 11 11 29
## 12 12 15
## 13 13 33
## 14 14 22
## 15 15 20
## 16 16 35
## 17 17 115
## 18 18 31
## 19 19 147
## 20 20 25
## 21 21 26
## 22 22 100
bici_desgr <- merge(cali2, conteos_bide, by = "comuna")
spplot(bici_desgr[,5])
moto_des <- which(comunas_des2$'TIPO DE VEHÍCULO' == 2)
conteos_motdes <- table(comunas_des2$`comuna destino`[moto_des])
conteos_mode <- data.frame(comuna = names(conteos_motdes), conteo = as.vector(conteos_motdes))
conteos_mode
## comuna conteo
## 1 1 112
## 2 2 2177
## 3 3 1734
## 4 4 846
## 5 5 215
## 6 6 323
## 7 7 353
## 8 8 470
## 9 9 608
## 10 10 419
## 11 11 254
## 12 12 128
## 13 13 346
## 14 14 188
## 15 15 271
## 16 16 327
## 17 17 927
## 18 18 302
## 19 19 1421
## 20 20 151
## 21 21 243
## 22 22 911
moto_desgr <- merge(cali2, conteos_mode, by = "comuna")
spplot(moto_desgr[,5])
carr_des <- which(comunas_des2$'TIPO DE VEHÍCULO' == 3)
conteos_cardes <- table(comunas_des2$`comuna destino`[carr_des])
conteos_cade <- data.frame(comuna = names(conteos_cardes), conteo = as.vector(conteos_cardes))
conteos_cade
## comuna conteo
## 1 1 86
## 2 2 2006
## 3 3 1557
## 4 4 757
## 5 5 225
## 6 6 275
## 7 7 286
## 8 8 403
## 9 9 489
## 10 10 384
## 11 11 239
## 12 12 85
## 13 13 226
## 14 14 138
## 15 15 245
## 16 16 321
## 17 17 959
## 18 18 276
## 19 19 1302
## 20 20 144
## 21 21 198
## 22 22 694
carr_desgr <- merge(cali2, conteos_cade, by = "comuna")
spplot(carr_desgr[,5])
Las comunas con mayor población origen son: 2, 19, 17 y 3.
Las comunas donde más movimiento se ve por origen y tipo de vehículo bicicleta son: 2, 17, 19 y 18.
Las comunas donde más movimiento se ve por origen y tipo de vehículo moto son: 2, 19 y 17.
Las comunas donde más movimiento se ve por origen y tipo de vehículo carro son: 2 y 19.
Las comunas con mayor población destino son: 2, 3, 19, y 17
Las comunas donde más movimiento se ve por destino y tipo de vehículo bicicleta son: 2, 3, y 19
Las comunas donde más movimiento se ve por destino y tipo de vehículo moto son: 2, 3 y 19.
Las comunas donde más movimiento se ve por destino y tipo de vehículo carro son: 2, 3 y 19
Se observa que el entendimiento por medio de gráficos y mapas es más puntual y efectivo que solo tablas o matrices o vectores.