Last active
May 18, 2020 19:00
-
-
Save marloz24/82722990330bc7f70ef1e48a435aebae to your computer and use it in GitHub Desktop.
Encuesta Origen - Destino INEGI 2017: tabla Viajes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#instalamos librerias | |
library(survey) | |
library(tidyverse) | |
library(foreign) | |
library(lubridate) | |
library(stringr) | |
#descargamos bases | |
Tviaje <- read.dbf("Tviaje.dbf") | |
Tviaje1 <- read.dbf("Tviaje.dbf") | |
#convertimos edad de str a numeric | |
Tviaje1$EDAD <- as.numeric(levels(Tviaje1$EDAD))[Tviaje1$EDAD] | |
#creamos columna extra para almacenar edad en rangos | |
Tviaje2 <- Tviaje1 %>% mutate( | |
Edad_Rangos = case_when( | |
EDAD <= 5 ~ "5 años o menor", | |
EDAD >= 6 & EDAD <= 12 ~ "6 a 12", | |
EDAD >= 13 & EDAD <= 18 ~ "13 a 18", | |
EDAD >= 19 & EDAD <= 24 ~ "19 a 24", | |
EDAD >= 25 & EDAD <= 34 ~ "25 a 34", | |
EDAD >= 35 & EDAD <= 44 ~ "35 a 44", | |
EDAD >= 45 & EDAD <= 64 ~ "45 a 64", | |
EDAD >= 65 & EDAD <= 97 ~ "65 años o mayor", | |
EDAD == 99 ~ "No sabe" | |
) | |
) | |
Tviaje2$Edad_Rangos <- as.factor(Tviaje2$Edad_Rangos) | |
#creamos otra columna en que agrupamos hora + minutos para hora inicio | |
Tviaje3 <- Tviaje2 %>% | |
mutate(Hora_Inicio = str_c(P5_9_1, P5_9_2, sep = ":")) %>% | |
mutate(Hora_Inicio = Hora_Inicio %>% hm()) | |
#creamos otra columna en que agrupamos hora + minutos para hora final | |
Tviaje4 <- Tviaje3 %>% | |
mutate(Hora_Final = str_c(P5_10_1, P5_10_2, sep = ":")) %>% | |
mutate(Hora_Final = Hora_Final %>% hm()) | |
#basados en las columnas anteriores, creamos columnas con la hora agrupada por rangos de hora | |
Tviaje5 <- Tviaje4 %>% mutate( | |
Rango_Inicio = case_when( | |
Hora_Inicio >= "0H 0M 0S" & Hora_Inicio <= "3H 59M 0S" ~ "Antes de las 3:59", | |
Hora_Inicio >= "4H 00M 0S" & Hora_Inicio <= "4H 59M 0S" ~ "4:00 a 4:59", | |
Hora_Inicio >= "5H 00M 0S" & Hora_Inicio <= "5H 59M 0S" ~ "5:00 a 5:59", | |
Hora_Inicio >= "6H 00M 0S" & Hora_Inicio <= "6H 59M 0S" ~ "6:00 a 6:59", | |
Hora_Inicio >= "7H 00M 0S" & Hora_Inicio <= "7H 59M 0S" ~ "7:00 a 7:59", | |
Hora_Inicio >= "8H 00M 0S" & Hora_Inicio <= "8H 59M 0S" ~ "8:00 a 8:59", | |
Hora_Inicio >= "9H 00M 0S" & Hora_Inicio <= "9H 59M 0S" ~ "9:00 a 9:59", | |
Hora_Inicio >= "10H 00M 0S" & Hora_Inicio <= "10H 59M 0S" ~ "10:00 a 10:59", | |
Hora_Inicio >= "11H 00M 0S" & Hora_Inicio <= "11H 59M 0S" ~ "11:00 a 11:59", | |
Hora_Inicio >= "12H 00M 0S" & Hora_Inicio <= "12H 59M 0S" ~ "12:00 a 12:59", | |
Hora_Inicio >= "13H 00M 0S" & Hora_Inicio <= "13H 59M 0S" ~ "13:00 a 13:59", | |
Hora_Inicio >= "14H 00M 0S" & Hora_Inicio <= "14H 59M 0S" ~ "14:00 a 14:59", | |
Hora_Inicio >= "15H 00M 0S" & Hora_Inicio <= "15H 59M 0S" ~ "15:00 a 15:59", | |
Hora_Inicio >= "16H 00M 0S" & Hora_Inicio <= "16H 59M 0S" ~ "16:00 a 16:59", | |
Hora_Inicio >= "17H 00M 0S" & Hora_Inicio <= "17H 59M 0S" ~ "17:00 a 17:59", | |
Hora_Inicio >= "18H 00M 0S" & Hora_Inicio <= "18H 59M 0S" ~ "18:00 a 18:59", | |
Hora_Inicio >= "19H 00M 0S" & Hora_Inicio <= "19H 59M 0S" ~ "19:00 a 19:59", | |
Hora_Inicio >= "20H 00M 0S" & Hora_Inicio <= "20H 59M 0S" ~ "20:00 a 20:59", | |
Hora_Inicio >= "21H 00M 0S" & Hora_Inicio <= "21H 59M 0S" ~ "21:00 a 21:59", | |
Hora_Inicio >= "22H 00M 0S" & Hora_Inicio <= "22H 59M 0S" ~ "22:00 a 22:59", | |
Hora_Inicio >= "23H 00M 0S" & Hora_Inicio <= "23H 59M 0S" ~ "23:00 a 23:59", | |
Hora_Inicio == "99H 99M 0S" ~ "No respondio" | |
) | |
) | |
#rangos de hora creados los hacemos factor para facilitar su uso | |
Tviaje5$Rango_Inicio <- as.factor(Tviaje5$Rango_Inicio) | |
#basados en las columnas anteriores, creamos columnas con la hora agrupada por rangos de hora | |
Tviaje6 <- Tviaje5 %>% mutate( | |
Rango_Final = case_when( | |
Hora_Final >= "0H 0M 0S" & Hora_Final <= "3H 59M 0S" ~ "Antes de las 3:59", | |
Hora_Final >= "4H 00M 0S" & Hora_Final <= "4H 59M 0S" ~ "4:00 a 4:59", | |
Hora_Final >= "5H 00M 0S" & Hora_Final <= "5H 59M 0S" ~ "5:00 a 5:59", | |
Hora_Final >= "6H 00M 0S" & Hora_Final <= "6H 59M 0S" ~ "6:00 a 6:59", | |
Hora_Final >= "7H 00M 0S" & Hora_Final <= "7H 59M 0S" ~ "7:00 a 7:59", | |
Hora_Final >= "8H 00M 0S" & Hora_Final <= "8H 59M 0S" ~ "8:00 a 8:59", | |
Hora_Final >= "9H 00M 0S" & Hora_Final <= "9H 59M 0S" ~ "9:00 a 9:59", | |
Hora_Final >= "10H 00M 0S" & Hora_Final <= "10H 59M 0S" ~ "10:00 a 10:59", | |
Hora_Final >= "11H 00M 0S" & Hora_Final <= "11H 59M 0S" ~ "11:00 a 11:59", | |
Hora_Final >= "12H 00M 0S" & Hora_Final <= "12H 59M 0S" ~ "12:00 a 12:59", | |
Hora_Final >= "13H 00M 0S" & Hora_Final <= "13H 59M 0S" ~ "13:00 a 13:59", | |
Hora_Final >= "14H 00M 0S" & Hora_Final <= "14H 59M 0S" ~ "14:00 a 14:59", | |
Hora_Final >= "15H 00M 0S" & Hora_Final <= "15H 59M 0S" ~ "15:00 a 15:59", | |
Hora_Final >= "16H 00M 0S" & Hora_Final <= "16H 59M 0S" ~ "16:00 a 16:59", | |
Hora_Final >= "17H 00M 0S" & Hora_Final <= "17H 59M 0S" ~ "17:00 a 17:59", | |
Hora_Final >= "18H 00M 0S" & Hora_Final <= "18H 59M 0S" ~ "18:00 a 18:59", | |
Hora_Final >= "19H 00M 0S" & Hora_Final <= "19H 59M 0S" ~ "19:00 a 19:59", | |
Hora_Final >= "20H 00M 0S" & Hora_Final <= "20H 59M 0S" ~ "20:00 a 20:59", | |
Hora_Final >= "21H 00M 0S" & Hora_Final <= "21H 59M 0S" ~ "21:00 a 21:59", | |
Hora_Final >= "22H 00M 0S" & Hora_Final <= "22H 59M 0S" ~ "22:00 a 22:59", | |
Hora_Final >= "23H 00M 0S" & Hora_Final <= "23H 59M 0S" ~ "23:00 a 23:59", | |
Hora_Final == "99H 99M 0S" ~ "No respondio" | |
) | |
) | |
#rangos de hora creados los hacemos factor para facilitar su uso | |
Tviaje6$Rango_Final <- as.factor(Tviaje6$Rango_Final) | |
#guardamos la base original y completa como csv y rds para uso futuro | |
write.csv(Tviaje6, "Origen_Destino.csv") | |
saveRDS(Tviaje6, "Origen_Destino. rds") | |
#hacemos un subset para usuarios de Mexibus o Metrobus | |
MB <- subset(Tviaje6, P5_14_11 == "1") | |
#creamos objetco svydesign y ajustamos las unidades primarias de muestreo | |
Tviaje_design <- svydesign (id=~UPM_DIS, strata=~EST_DIS, weights=~FACTOR, data = MB) | |
options(survey.lonely.psu="adjust") | |
#modelo de tablas cruzadas que podemos crear | |
Motivo <- svyby(~Edad_Rangos, | |
by=~P5_13, | |
design=Tviaje_design, | |
FUN=svytotal) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment