Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save marloz24/82722990330bc7f70ef1e48a435aebae to your computer and use it in GitHub Desktop.
Save marloz24/82722990330bc7f70ef1e48a435aebae to your computer and use it in GitHub Desktop.
Encuesta Origen - Destino INEGI 2017: tabla Viajes
#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