#install.packages("rlang", INSTALL_opts = '--no-lock')
class(encuesta_origen_destino)
## [1] "tbl_df"     "tbl"        "data.frame"
encuesta_origen_destino = encuesta_origen_destino %>% clean_names()%>% dplyr::select(c("comuna_origen","comuna_destino", "tipo_de_vehiculo"))
#se realiza la eliminación de los valores que no aportan al análisis en las variables comuna origen y destino. 

encuesta_origendestino2<-encuesta_origen_destino[encuesta_origen_destino$comuna_origen!="Fuera de Cali" & encuesta_origen_destino$comuna_destino!= "Fuera de Cali" & encuesta_origen_destino$comuna_origen!= "0" & encuesta_origen_destino$comuna_destino!= "0", ]
encuesta_origen_destino=na.omit(encuesta_origen_destino)

#Vamos a cargar el shapefile que contiene la data geografica por comunas SHAPEFILE # se observa que el archivo tiene definido el CRS (Coordinate Reference System)

comunas=shapefile("C:/Users/asus/Desktop/informacion_geografica/cali/Comunas.shp")
comunas
## 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
comunas@data
##    OBJECTID gid comuna    nombre
## 1         1 107      2  Comuna 2
## 2         2 108      1  Comuna 1
## 3         3 109      3  Comuna 3
## 4         4 110     19 Comuna 19
## 5         5 103     15 Comuna 15
## 6         6 104     17 Comuna 17
## 7         7 105     18 Comuna 18
## 8         8 106     22 Comuna 22
## 9         9  89      6  Comuna 6
## 10       10  90      4  Comuna 4
## 11       11  91      5  Comuna 5
## 12       12  92      7  Comuna 7
## 13       13  93      8  Comuna 8
## 14       14  94      9  Comuna 9
## 15       15  95     21 Comuna 21
## 16       16  96     13 Comuna 13
## 17       17  97     12 Comuna 12
## 18       18  98     14 Comuna 14
## 19       19  99     11 Comuna 11
## 20       20 100     10 Comuna 10
## 21       21 101     20 Comuna 20
## 22       22 102     16 Comuna 16
#creación de etiquetas 
lbls<- as.character(comunas$comuna)
spl = list('sp.text', coordinates(comunas), lbls, cex=.6)
spl[[2]][7,]=spl[[2]][7,]+0.005

require(gridExtra)
## Loading required package: gridExtra
## 
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
## 
##     combine
g1=spplot(comunas[,3], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main = "Comunas")
g1

#Limpieza de datos encuesta origen -destino

#limpieza de datos para volverlos numericos o caracter
# numerico el tipo de vehiculo
com=as.numeric(encuesta_origendestino2$tipo_de_vehiculo)
#volver numericos la comunidad origen y lo q tenga caracter se coloca como nulo
 com=as.numeric(encuesta_origendestino2$comuna_origen)

ANALISIS ORIGENES

#seleccionamos los datos para los origenes

pos=which(com>=1&com<=22)
origenes=encuesta_origendestino2[pos,]
res=data.frame(table(origenes$comuna_origen))

# cuando se vaya a relacionar la informacion es mejor tenerla en tipo caracter
as.character(res$Var1)
##  [1] "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15"
## [16] "16" "17" "18" "19" "20" "21" "22"
# dejar en orden en el mismo orden del shape de las comunas
#ejemplo uno, de orden
orden=comunas$comuna
res_orden= res[orden,]

comunas@data$total_Origen=res_orden$Freq

# se valida que quedo el campo creado
comunas@data
##    OBJECTID gid comuna    nombre total_Origen
## 1         1 107      2  Comuna 2         2250
## 2         2 108      1  Comuna 1          626
## 3         3 109      3  Comuna 3         1610
## 4         4 110     19 Comuna 19         2241
## 5         5 103     15 Comuna 15          974
## 6         6 104     17 Comuna 17         1762
## 7         7 105     18 Comuna 18         1208
## 8         8 106     22 Comuna 22          985
## 9         9  89      6  Comuna 6          797
## 10       10  90      4  Comuna 4         1193
## 11       11  91      5  Comuna 5          521
## 12       12  92      7  Comuna 7          583
## 13       13  93      8  Comuna 8          862
## 14       14  94      9  Comuna 9          737
## 15       15  95     21 Comuna 21          693
## 16       16  96     13 Comuna 13         1031
## 17       17  97     12 Comuna 12          257
## 18       18  98     14 Comuna 14          575
## 19       19  99     11 Comuna 11          717
## 20       20 100     10 Comuna 10         1094
## 21       21 101     20 Comuna 20          599
## 22       22 102     16 Comuna 16          836
g2=spplot(comunas[,5], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main="Total de trayectos comuna de origen")
g2

ORIGENES BICILETAS

pos=which(com>=1&com<=22&encuesta_origendestino2$tipo_de_vehiculo==1)
origenes=encuesta_origendestino2[pos,]
res=data.frame(table(origenes$comuna_origen))

orden=comunas$comuna
res_orden= res[orden,]

comunas@data$total_origen_bici=res_orden$Freq
head(comunas@data)
##   OBJECTID gid comuna    nombre total_Origen total_origen_bici
## 1        1 107      2  Comuna 2         2250               122
## 2        2 108      1  Comuna 1          626                32
## 3        3 109      3  Comuna 3         1610                84
## 4        4 110     19 Comuna 19         2241               113
## 5        5 103     15 Comuna 15          974                55
## 6        6 104     17 Comuna 17         1762               103
lbls = as.character(comunas$comuna)
spl = list('sp.text', coordinates(comunas), lbls, cex=.6)
spl[[2]][7,]=spl[[2]][7,]+0.005 # este es para la comuna 21 que es como una L para correr el centroide

g3=spplot(comunas[,6], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main="comuna de origen_bicicleta")
g3

ORIGENES MOTOS

#caso Origenes Moto


pos=which(com>=1&com<=22&encuesta_origendestino2$tipo_de_vehiculo==2)
origenes=encuesta_origendestino2[pos,]
res=data.frame(table(origenes$comuna_origen))

orden=comunas$comuna
res_orden= res[orden,]

comunas@data$total_Origen_moto=res_orden$Freq
head(comunas@data)
##   OBJECTID gid comuna    nombre total_Origen total_origen_bici
## 1        1 107      2  Comuna 2         2250               122
## 2        2 108      1  Comuna 1          626                32
## 3        3 109      3  Comuna 3         1610                84
## 4        4 110     19 Comuna 19         2241               113
## 5        5 103     15 Comuna 15          974                55
## 6        6 104     17 Comuna 17         1762               103
##   total_Origen_moto
## 1              1063
## 2               296
## 3               702
## 4               995
## 5               455
## 6               853
g4=spplot(comunas[,7], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main= "comuna de origen_moto")
g4

ORIGENES CARROS

pos=which(com>=1&com<=22&encuesta_origendestino2$tipo_de_vehiculo==3)
origenes=encuesta_origendestino2[pos,]
res=data.frame(table(origenes$comuna_origen))

orden=comunas$comuna
res_orden= res[orden,]

comunas@data$total_Origen_carro=res_orden$Freq
head(comunas@data)
##   OBJECTID gid comuna    nombre total_Origen total_origen_bici
## 1        1 107      2  Comuna 2         2250               122
## 2        2 108      1  Comuna 1          626                32
## 3        3 109      3  Comuna 3         1610                84
## 4        4 110     19 Comuna 19         2241               113
## 5        5 103     15 Comuna 15          974                55
## 6        6 104     17 Comuna 17         1762               103
##   total_Origen_moto total_Origen_carro
## 1              1063                860
## 2               296                234
## 3               702                679
## 4               995                923
## 5               455                377
## 6               853                662
g5=spplot(comunas[,8], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main="comuna de origen_carro")
g5

mapa_completo=spplot(comunas[,5:8], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main="total mapas origenes")
mapa_completo

#comunas@data$tasa_origen_bici=comunas@data$total_origen_bici/comunas@data$total_Origen
#comunas@data$tasa_origen_moto=comunas@data$total_Origen_moto/comunas@data$total_Origen
#comunas@data$tasa_origen_moto=comunas@data$total_Origen_carro/comunas@data$total_Origen

TRAYECTOS DESTINO

com=as.numeric(encuesta_origendestino2$comuna_destino)
#seleccion solo de las columnas que tienen informacion
pos=which(com>=1&com<=22)
destino=encuesta_origendestino2[pos,]
res=data.frame(table(origenes$comuna_destino))

# cuando se vaya a relacionar la informacion es mejor tenerla en tipo caracter
as.character(res$Var1)
##  [1] "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15"
## [16] "16" "17" "18" "19" "20" "21" "22"
orden=comunas$comuna
res_orden= res[orden,]

comunas@data$total_destino=res_orden$Freq

# se valida que quedo el campo creado
comunas@data
##    OBJECTID gid comuna    nombre total_Origen total_origen_bici
## 1         1 107      2  Comuna 2         2250               122
## 2         2 108      1  Comuna 1          626                32
## 3         3 109      3  Comuna 3         1610                84
## 4         4 110     19 Comuna 19         2241               113
## 5         5 103     15 Comuna 15          974                55
## 6         6 104     17 Comuna 17         1762               103
## 7         7 105     18 Comuna 18         1208                85
## 8         8 106     22 Comuna 22          985                52
## 9         9  89      6  Comuna 6          797                29
## 10       10  90      4  Comuna 4         1193                58
## 11       11  91      5  Comuna 5          521                28
## 12       12  92      7  Comuna 7          583                30
## 13       13  93      8  Comuna 8          862                46
## 14       14  94      9  Comuna 9          737                36
## 15       15  95     21 Comuna 21          693                35
## 16       16  96     13 Comuna 13         1031                62
## 17       17  97     12 Comuna 12          257                10
## 18       18  98     14 Comuna 14          575                32
## 19       19  99     11 Comuna 11          717                42
## 20       20 100     10 Comuna 10         1094                71
## 21       21 101     20 Comuna 20          599                33
## 22       22 102     16 Comuna 16          836                65
##    total_Origen_moto total_Origen_carro total_destino
## 1               1063                860          1518
## 2                296                234            73
## 3                702                679          1098
## 4                995                923           926
## 5                455                377           199
## 6                853                662           650
## 7                593                433           216
## 8                430                424           564
## 9                377                314           208
## 10               571                443           596
## 11               260                185           181
## 12               272                229           224
## 13               421                319           325
## 14               317                295           382
## 15               323                272           164
## 16               453                412           189
## 17               133                 88            71
## 18               258                236           120
## 19               339                268           204
## 20               535                404           291
## 21               278                228           131
## 22               383                320           275
g_destino=spplot(comunas[,9], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main="comuna de destino")
g_destino

DESTINO-BICICLETA

pos=which(com>=1&com<=22&encuesta_origendestino2$tipo_de_vehiculo==1)
destino=encuesta_origendestino2[pos,]
res=data.frame(table(destino$comuna_destino))

orden=comunas$comuna
res_orden= res[orden,]

comunas@data$total_destino_bici=res_orden$Freq
head(comunas@data)
##   OBJECTID gid comuna    nombre total_Origen total_origen_bici
## 1        1 107      2  Comuna 2         2250               122
## 2        2 108      1  Comuna 1          626                32
## 3        3 109      3  Comuna 3         1610                84
## 4        4 110     19 Comuna 19         2241               113
## 5        5 103     15 Comuna 15          974                55
## 6        6 104     17 Comuna 17         1762               103
##   total_Origen_moto total_Origen_carro total_destino total_destino_bici
## 1              1063                860          1518                194
## 2               296                234            73                  9
## 3               702                679          1098                169
## 4               995                923           926                131
## 5               455                377           199                 17
## 6               853                662           650                 95
g_destino_bicicleta=spplot(comunas[,10], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main="Comuna por destino_bicicleta")
g_destino_bicicleta

DESTINO MOTO

pos=which(com>=1&com<=22&encuesta_origendestino2$tipo_de_vehiculo==2)
destino=encuesta_origendestino2[pos,]
res=data.frame(table(destino$comuna_destino))

orden=comunas$comuna
res_orden= res[orden,]

comunas@data$total_destino_moto=res_orden$Freq
head(comunas@data)
##   OBJECTID gid comuna    nombre total_Origen total_origen_bici
## 1        1 107      2  Comuna 2         2250               122
## 2        2 108      1  Comuna 1          626                32
## 3        3 109      3  Comuna 3         1610                84
## 4        4 110     19 Comuna 19         2241               113
## 5        5 103     15 Comuna 15          974                55
## 6        6 104     17 Comuna 17         1762               103
##   total_Origen_moto total_Origen_carro total_destino total_destino_bici
## 1              1063                860          1518                194
## 2               296                234            73                  9
## 3               702                679          1098                169
## 4               995                923           926                131
## 5               455                377           199                 17
## 6               853                662           650                 95
##   total_destino_moto
## 1               1734
## 2                 90
## 3               1333
## 4               1152
## 5                232
## 6                744
g_destino_moto=spplot(comunas[,11], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main="comuna por destino_moto")
g_destino_moto

DESTINO_CARRO

pos=which(com>=1&com<=22&encuesta_origendestino2$tipo_de_vehiculo==3)
destino=encuesta_origendestino2[pos,]
res=data.frame(table(destino$comuna_destino))

orden=comunas$comuna
res_orden= res[orden,]

comunas@data$total_destino_carro=res_orden$Freq
head(comunas@data)
##   OBJECTID gid comuna    nombre total_Origen total_origen_bici
## 1        1 107      2  Comuna 2         2250               122
## 2        2 108      1  Comuna 1          626                32
## 3        3 109      3  Comuna 3         1610                84
## 4        4 110     19 Comuna 19         2241               113
## 5        5 103     15 Comuna 15          974                55
## 6        6 104     17 Comuna 17         1762               103
##   total_Origen_moto total_Origen_carro total_destino total_destino_bici
## 1              1063                860          1518                194
## 2               296                234            73                  9
## 3               702                679          1098                169
## 4               995                923           926                131
## 5               455                377           199                 17
## 6               853                662           650                 95
##   total_destino_moto total_destino_carro
## 1               1734                1518
## 2                 90                  73
## 3               1333                1098
## 4               1152                 926
## 5                232                 199
## 6                744                 650
g_destino_carro=spplot(comunas[,12], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main="comuna por destino_carro")
g_destino_carro

mapa_completo2=spplot(comunas[,9:12], col.regions= heat.colors(20,.95,.4), sp.layout = spl, main="total mapas destinos")
mapa_completo2

CONCLUSIONES

La comuna 2, 19 y 17 son las que tienen mayor número de trayectos por origen. Frente al uso de la bicicleta y moto y carro, los usuarios de origen son en si mayoría los de la comuna 2 y 19. Una menor proporcion de usuarios tiene trayectos en bici desde su origen a diferencia de la moto y el carro, que tienen proporciones similares.

Frente a los destinos, las comunas 2 y 3 son los más frecuentes en la ciudad de Cali.