Código provisorio, trabajo en curso.

library(tidyverse)
## -- Attaching packages -------------------------------------------------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.2.1     v purrr   0.3.3
## v tibble  2.1.3     v dplyr   0.8.3
## v tidyr   1.0.0     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.4.0
## -- Conflicts ----------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
## 
##     date
library(leaflet)
library(openxlsx)

Cargamos los dataset de viajes, estaciones y distancias.

recorridos20 <- read.csv(file = "recorridos-realizados-2020.csv", encoding = "UTF-8", stringsAsFactors = FALSE)
distancias <- read.xlsx("mat_distancia.xlsx")
mat_distancias <- as.matrix(distancias)
df_estaciones_ecobici_full <- read.csv(file = "nuevas-estaciones-bicicletas-publicas.csv", stringsAsFactors = FALSE, encoding = "UTF-8") %>% select(lat, long, nombre_estacion)

Y lo acomodamos un poco.

recorridos20$Unnamed..0 <- NULL
recorridos20$numinicio <- substring(recorridos20$Nombre.de.estación.de.inicio,1,3)
recorridos20$numfinal <- substring(recorridos20$Nombre.de.estación.de.fin.de.viaje,1,3)
recorridos20$par <- paste0(recorridos20$numinicio, " ", recorridos20$numfinal)
recorridos20$mes <- substring(recorridos20$Fecha.de.inicio,6,7)
recorridos20$igual <- ifelse(recorridos20$numinicio==recorridos20$numfinal,"igual","distinto")
df_duracion <- recorridos20 %>% select(Duración, par, mes, igual, Fecha.de.inicio, ID.de.ciclista)

Con esta función puedo barrer el df y asignarle una distancia mínima a las estaciones a ver si matchean

buscardistancia <- function(inicio, fin){
    indiceinicio <- match(inicio, listanombres)
    indicefin <- match(fin, listanombres)
    distancia <- mat_distancias[indiceinicio, indicefin]
    return(distancia)
}

Cargo la matriz de distancias entre estaciones

listanombres <- colnames(distancias) %>% substring(1,3)
colnames(distancias) <- listanombres
rownames(distancias) <- listanombres
df_duracion$inicio <- substring(df_duracion$par,1,3)
df_duracion$final <- substring(df_duracion$par,5,7)
df_duracion$distancias <- mapply(buscardistancia, df_duracion$inicio, df_duracion$final)

Creo un df de pares de estaciones y los ordeno según los viajes entre cada una. Reconstruyo el número de estaciones.

pares <- recorridos20 %>% group_by(par,mes) %>% summarize(count = n())
pares$inicio <- substring(pares$par,1,3)
pares$fin <- substring(pares$par,5,7)
pares$igual <- ifelse(pares$inicio==pares$fin,"igual","distinto")
df_duracion$duracion <- df_duracion$Duración
df_duracion$fecha <- df_duracion$Fecha.de.inicio
df_duracion$id <- df_duracion$ID.de.ciclista
df_duracion$Duración <- NULL
df_duracion$Fecha.de.inicio <- NULL
df_duracion$ID.de.ciclista <- NULL
df_duracion <- df_duracion %>% filter(duracion < 7200)
df_duracion <- drop_na(df_duracion)
df_duracion$inicio <- substring(df_duracion$par,1,3)
df_duracion$final <- substring(df_duracion$par,5,7)
df_duracion$distancias <- mapply(buscardistancia, df_duracion$inicio, df_duracion$final)
df_duracion_limpio <- df_duracion %>% filter(distancias >=100 & duracion >= 60 & mes != "03")
df_duracion_limpio$velocidadms <- round(df_duracion_limpio$distancias/df_duracion_limpio$duracion, 2)
df_duracion_limpio$velocidadkmh <- round((df_duracion_limpio$velocidadms*3600)/1000, 1)
df_duracion_limpio$diasemana <- wday(ymd_hms(df_duracion_limpio$fecha))
df_duracion_limpio <- df_duracion_limpio %>% mutate(diasemana = case_when(diasemana == 1 ~ "1-Domingo", diasemana == 2 ~ "2-Lunes", diasemana == 3 ~ "3-Martes", diasemana == 4 ~ "4-Miércoles", diasemana == 5 ~ "5-Jueves", diasemana == 6 ~ "6-Viernes", diasemana == 7 ~ "7-Sábado" ))
df_duracion_limpio$hora <- hour(ymd_hms(df_duracion_limpio$fecha))
df_duracion_limpio <- df_duracion_limpio %>% mutate(finsemana = case_when(diasemana == "1-Domingo" ~ "Si",diasemana == "7-Sábado" ~ "Si", TRUE ~ "No"))
df_duracion_limpio <- df_duracion_limpio %>% mutate(tipohora = case_when(hora >= 07 & hora <= 11 ~ "Pico", hora >= 16 & hora <= 20 ~ "Pico", TRUE ~ "Valle"))
df_duracion_limpio <- df_duracion_limpio %>% mutate(segmentohorario = case_when(finsemana == "No" & tipohora == "Valle" ~ "LunVie-Valle", finsemana == "Si" & tipohora == "Valle" ~ "SabDom-Valle", finsemana == "No" & tipohora == "Pico" ~ "LunVie-Pico", finsemana == "Si" & tipohora == "Pico" ~ "SabDom-Pico"))
df_duracion_limpio$inicio_num <- as.numeric(df_duracion_limpio$inicio)
df_duracion_limpio$final_num <- as.numeric(df_duracion_limpio$final)
#df_duracion_limpio <- df_duracion %>% filter(distancias >=100 & duracion >= 60 & mes != "03")
#df_duracion_limpio$velocidadms <- round(df_duracion_limpio$distancias/df_duracion_limpio$duracion, 0)
#df_duracion_limpio$velocidadkmh <- round((df_duracion_limpio$velocidadms*3600)/1000, 0)

Esto lo hice a mano mirando el mapa, me quedó pendiente resolver el tema de distancia a calle.

listaestacionescordoba = c(026, 237, 004, 060, 132, 063, 135, 023, 095, 051, 071, 038, 045, 083, 027, 174, 084, 033, 131, 171, 069, 144, 165, 096, 085, 066, 161, 054, 121, 070, 099, 142, 056, 100, 101, 159, 020, 243, 260, 346, 264, 281)
listaestacionescorrientes = c(026, 111, 004, 060, 132, 063, 032, 095, 023, 042, 191, 007, 051, 071, 045, 083, 008, 027, 084, 171, 144, 163, 013, 096, 017, 161, 191, 054, 121, 074, 129, 099, 136, 100, 158, 094, 104, 282)
listaestacionesrivadavia = c(111, 128, 003, 132, 032, 061, 016, 098, 042, 112, 191, 024, 007, 008, 076, 075, 162, 013, 163, 186, 134, 017, 194, 197, 082, 029, 167, 188, 087, 187, 272, 276, 223, 374, 270, 352, 221, 365)
listaestacionessanjuandirectorio = c(164, 172, 117, 018, 168, 147, 093, 107, 086, 092, 146, 199, 178, 080, 097, 229, 222, 221)
listaestacioneslibertador = c(130, 002, 022, 393, 189, 166, 334, 001, 050, 089, 103, 156, 124, 044, 335, 160, 391, 381, 251, 292, 255, 250, 261, 396, 289, 227)
listaestacionessantafecabildo = c(114, 035, 130, 002, 135, 022, 038, 012, 027, 174, 064, 131, 033, 030, 069, 116, 085, 193, 200, 181, 059, 009, 190, 025, 065, 124, 123, 113, 005, 125, 014, 182, 058, 381, 251, 242, 258, 336, 240, 255, 254, 256, 233, 249, 396, 257, 399, 297)

listaestacionescallaoentrerios = c(189, 166, 012, 030, 064, 033, 174, 131, 027, 084, 045, 171, 083, 076, 008, 075, 183, 091, 093, 107, 184, 138)
listaestacionespueyrredonjujuy = c(001, 334, 166, 030, 200, 116, 193, 033, 069, 085, 131, 165, 144, 171, 096, 162, 163, 013, 075, 186, 120, 118, 091, 146, 086, 093, 092, 107, 105, 041, 387, 021, 155, 340)
listaestaciones9dejulio = c(393, 130, 002, 189, 022, 038, 135, 023, 051, 095, 071, 042, 007, 191, 016, 024, 112, 098, 149, 046, 244, 018, 168, 117, 147, 172, 006, 073, 273, 179, 126, 331)
listaestacionesalemcolon = c(130, 002, 114, 035, 063, 237, 026, 060, 004, 132, 128, 111, 061, 003, 079, 151, 137, 164, 150, 152, 034, 172, 196, 006, 108, 153)
listaestacionesjuanbjusto = c(391, 160, 014, 005, 182, 125, 113, 159, 100, 101, 158, 094, 136, 384, 275, 205, 285, 278, 350, 349, 206, 324)
df_duracion_limpio$cordoba <- ifelse((df_duracion_limpio$inicio_num %in% listaestacionescordoba & df_duracion_limpio$final_num %in% listaestacionescordoba),ifelse(match(df_duracion_limpio$inicio_num, listaestacionescordoba)<match(df_duracion_limpio$final_num, listaestacionescordoba), "Oeste", "Este"),"No" )

df_duracion_limpio$corrientes <- ifelse((df_duracion_limpio$inicio_num %in% listaestacionescorrientes & df_duracion_limpio$final_num %in% listaestacionescorrientes),ifelse(match(df_duracion_limpio$inicio_num, listaestacionescorrientes)<match(df_duracion_limpio$final_num, listaestacionescorrientes), "Oeste", "Este"),"No" )

df_duracion_limpio$rivadavia <- ifelse((df_duracion_limpio$inicio_num %in% listaestacionesrivadavia & df_duracion_limpio$final_num %in% listaestacionesrivadavia),ifelse(match(df_duracion_limpio$inicio_num, listaestacionesrivadavia)<match(df_duracion_limpio$final_num, listaestacionesrivadavia), "Oeste", "Este"),"No" )

df_duracion_limpio$sanjuandirectorio <- ifelse((df_duracion_limpio$inicio_num %in% listaestacionessanjuandirectorio & df_duracion_limpio$final_num %in% listaestacionessanjuandirectorio),ifelse(match(df_duracion_limpio$inicio_num, listaestacionessanjuandirectorio)<match(df_duracion_limpio$final_num, listaestacionessanjuandirectorio), "Oeste", "Este"),"No" )

df_duracion_limpio$libertador <- ifelse((df_duracion_limpio$inicio_num %in% listaestacioneslibertador & df_duracion_limpio$final_num %in% listaestacioneslibertador),ifelse(match(df_duracion_limpio$inicio_num, listaestacioneslibertador)<match(df_duracion_limpio$final_num, listaestacioneslibertador), "Oeste", "Este"),"No" )

df_duracion_limpio$santafecabildo <- ifelse((df_duracion_limpio$inicio_num %in% listaestacionessantafecabildo & df_duracion_limpio$final_num %in% listaestacionessantafecabildo),ifelse(match(df_duracion_limpio$inicio_num, listaestacionessantafecabildo)<match(df_duracion_limpio$final_num, listaestacionessantafecabildo), "Oeste", "Este"),"No" )

df_duracion_limpio$callaoentrerios <- ifelse((df_duracion_limpio$inicio_num %in% listaestacionescallaoentrerios & df_duracion_limpio$final_num %in% listaestacionescallaoentrerios),ifelse(match(df_duracion_limpio$inicio_num, listaestacionescallaoentrerios)<match(df_duracion_limpio$final_num, listaestacionescallaoentrerios), "Sur", "Norte"),"No" )

df_duracion_limpio$pueyrredonjujuy <- ifelse((df_duracion_limpio$inicio_num %in% listaestacionespueyrredonjujuy & df_duracion_limpio$final_num %in% listaestacionespueyrredonjujuy),ifelse(match(df_duracion_limpio$inicio_num, listaestacionespueyrredonjujuy)<match(df_duracion_limpio$final_num, listaestacionespueyrredonjujuy), "Sur", "Norte"),"No" )

df_duracion_limpio$nuevedejulio <- ifelse((df_duracion_limpio$inicio_num %in% listaestaciones9dejulio & df_duracion_limpio$final_num %in% listaestaciones9dejulio),ifelse(match(df_duracion_limpio$inicio_num, listaestaciones9dejulio)<match(df_duracion_limpio$final_num, listaestaciones9dejulio), "Sur", "Norte"),"No" )

df_duracion_limpio$alemcolon <- ifelse((df_duracion_limpio$inicio_num %in% listaestacionesalemcolon & df_duracion_limpio$final_num %in% listaestacionesalemcolon),ifelse(match(df_duracion_limpio$inicio_num, listaestacionesalemcolon)<match(df_duracion_limpio$final_num, listaestacionesalemcolon), "Sur", "Norte"),"No" )

df_duracion_limpio$juanbjusto <- ifelse((df_duracion_limpio$inicio_num %in% listaestacionesjuanbjusto & df_duracion_limpio$final_num %in% listaestacionesjuanbjusto),ifelse(match(df_duracion_limpio$inicio_num, listaestacionesjuanbjusto)<match(df_duracion_limpio$final_num, listaestacionesjuanbjusto), "Sur", "Norte"),"No" )

Ajusto el dataset de estaciones, proceso los df intermedios.

df_estaciones_ecobici_full$id_real <- as.numeric(substring(df_estaciones_ecobici_full$nombre_estacion,1,3))
df_estaciones_ecobici_full$cordoba <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacionescordoba,"Si", "No")
df_estaciones_ecobici_full$corrientes <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacionescorrientes,"Si", "No")
df_estaciones_ecobici_full$libertador <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacioneslibertador,"Si", "No")
df_estaciones_ecobici_full$santafecabildo <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacionessantafecabildo,"Si", "No")
df_estaciones_ecobici_full$rivadavia <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacionesrivadavia,"Si", "No")
df_estaciones_ecobici_full$sanjuandirectorio <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacionessanjuandirectorio,"Si", "No")
df_estaciones_ecobici_full$alemcolon <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacionesalemcolon,"Si", "No")
df_estaciones_ecobici_full$nuevedejulio <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestaciones9dejulio,"Si", "No")
df_estaciones_ecobici_full$callaoentrerios <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacionescallaoentrerios,"Si", "No")
df_estaciones_ecobici_full$pueyrredonjujuy <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacionespueyrredonjujuy,"Si", "No")
df_estaciones_ecobici_full$juanbjusto <- ifelse(df_estaciones_ecobici_full$id_real %in% listaestacionesjuanbjusto,"Si", "No")

df_estaciones_cordoba <- df_estaciones_ecobici_full %>% filter (cordoba == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_corrientes <- df_estaciones_ecobici_full %>% filter (corrientes == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_libertador <- df_estaciones_ecobici_full %>% filter (libertador == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_santafecabildo <- df_estaciones_ecobici_full %>% filter (santafecabildo == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_rivadavia <- df_estaciones_ecobici_full %>% filter (rivadavia == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_sanjuandirectorio <- df_estaciones_ecobici_full %>% filter (sanjuandirectorio == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_alemcolon <- df_estaciones_ecobici_full %>% filter (alemcolon == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_nuevedejulio <- df_estaciones_ecobici_full %>% filter (nuevedejulio == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_callaoentrerios <- df_estaciones_ecobici_full %>% filter (callaoentrerios == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_pueyrredonjujuy <- df_estaciones_ecobici_full %>% filter (pueyrredonjujuy == "Si") %>% select(lat, long, nombre_estacion) 
df_estaciones_juanbjusto <- df_estaciones_ecobici_full %>% filter (juanbjusto == "Si") %>% select(lat, long, nombre_estacion)

Mapa.

leaflet(width = "100%") %>%
  addProviderTiles(providers$CartoDB.Positron)%>%
  #addCircleMarkers(data = df_estaciones_ecobici_full, lat = ~lat, lng = ~long,radius = 2, fillOpacity = 1, fillColor = "black", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Base")%>%
  addCircleMarkers(data = df_estaciones_cordoba, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "coral", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Córdoba")%>%
  addCircleMarkers(data = df_estaciones_corrientes, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "cadetblue", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Corrientes")%>%
  addCircleMarkers(data = df_estaciones_libertador, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "burlywood", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Libertador")%>%
  addCircleMarkers(data = df_estaciones_santafecabildo, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "blue", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Santa Fe/Cabildo")%>%
  addCircleMarkers(data = df_estaciones_rivadavia, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "goldenrod", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Rivadavia")%>%
  addCircleMarkers(data = df_estaciones_sanjuandirectorio, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "dodgerblue", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "San Juan/Directorio")%>%
  addCircleMarkers(data = df_estaciones_alemcolon, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "magenta", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Alem/Paseo Colón")%>%
  addCircleMarkers(data = df_estaciones_nuevedejulio, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "darkgreen", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "9 de Julio")%>%
  addCircleMarkers(data = df_estaciones_callaoentrerios, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "orchid", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Callao/Entre Ríos")%>%
  addCircleMarkers(data = df_estaciones_pueyrredonjujuy, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "olivedrab", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Pueyrredón/Jujuy")%>%
  addCircleMarkers(data = df_estaciones_juanbjusto, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005),radius = 6, fillOpacity = 0.7, fillColor = "mediumspringgreen", opacity = 0, label = ~nombre_estacion, labelOptions = labelOptions(noHide = F, direction = "up"), group = "Juan B Justo")%>%
    addLegend(colors = c("coral", "cadetblue", "burlywood", "blue", "goldenrod", "dodgerblue", "magenta", "darkgreen", "orchid", "olivedrab", "mediumspringgreen"),
              labels = c("Córdoba", "Corrientes", "Libertador", "Santa Fe/Cabildo", "Rivadavia", "San Juan/Directorio", "Alem/Paseo Colón","9 de Julio", "Callao/Entre Ríos", "Pueyrredón/Jujuy", "Juan B Justo"))
#%>%
  #addLabelOnlyMarkers(data = df_estaciones_ecobici_full, lat = ~lat+runif(1, -0.0005, 0.0005), lng = ~long+runif(1, -0.0005, 0.0005), label = ~nombre_estacion, labelOptions = labelOptions(noHide = T, textOnly = TRUE), group = "Nombres")%>%
  #addLayersControl(overlayGroups = c("Córdoba", "Corrientes", "Libertador", "Santa Fe/Cabildo", "Rivadavia", "San Juan/Directorio", "Alem/Paseo Colón", "9 de Julio", "Callao/Entre Ríos", "Pueyrredón/Jujuy", "Juan B Justo"),options = layersControlOptions(collapsed = FALSE))

Esto lo calculé a mano con group by y summarize, como me falta revisar la estructura de datos quedó así. Tengo que trabajarlo pero estos son los resultados para comparar.

% de viajes dentro de cada zona - Todos los viajes

Córdoba = 7,8

Corrientes = 5

Libertador = 8,6

Santa Fe/Cabildo = 12

Rivadavia = 5,5

San Juan/Directorio = 1,7

Alem/Paseo Colón = 2,9

9 de Julio = 3,1

Callao/Entre Ríos = 2,6

Pueyrredón/Jujuy = 5

Juan B Justo = 4,1

% de viajes dentro de cada zona - Lunes a Viernes hora pico

Córdoba = 8

Corrientes = 5,2

Libertador = 8,1

Santa Fe/Cabildo = 11,9

Rivadavia = 5,5

San Juan/Directorio = 1,7

Alem/Paseo Colón = 2,7

9 de Julio = 3,3

Callao/Entre Ríos = 2,6

Pueyrredón/Jujuy = 5

Juan B Justo = 4,1

% de viajes dentro de cada zona - Lunes a Viernes hora valle

Córdoba = 8,9

Corrientes = 6

Libertador = 7,5

Santa Fe/Cabildo = 12,5

Rivadavia = 6

San Juan/Directorio = 1,6

Alem/Paseo Colón = 2,7

9 de Julio = 3,6

Callao/Entre Ríos = 3,2

Pueyrredón/Jujuy = 5,4

Juan B Justo = 3,6

% de viajes dentro de cada zona - Sábado a domingo hora pico

Córdoba = 7,1

Corrientes = 3,6

Libertador = 10,9

Santa Fe/Cabildo = 10,4

Rivadavia = 4,7

San Juan/Directorio = 1,8

Alem/Paseo Colón = 3,5

9 de Julio = 2,4

Callao/Entre Ríos = 2

Pueyrredón/Jujuy = 4,4

Juan B Justo = 4,6

% de viajes dentro de cada zona - Sábado a domingo hora valle

Córdoba = 6,8

Corrientes = 4,1

Libertador = 10,8

Santa Fe/Cabildo = 11,8

Rivadavia = 4,7

San Juan/Directorio = 1,6

Alem/Paseo Colón = 3,2

9 de Julio = 2,4

Callao/Entre Ríos = 2,2

Pueyrredón/Jujuy = 4,5

Juan B Justo = 4,4