dnme-minturdep/DT6_ciencia_de_datos_turismo

Bases de dato para usar

Closed this issue · 3 comments

Hay que encontrar un par de tablas de la base de datos del ministerio que nos sirva para ejemplos. Me encontré con esta, que es bastante horrenta, pero nos puede servir para mostrar pivot_longer():

Serie de tiempo - Trimestral
Evolución de los principales indicadores producidos por la Encuesta de Viajes y Turismo de los Hogares (EVyTH) - Ministerio de > Turismo y Deporte, desde el año 2014 a la última actualización.

url <- "http://datos.yvera.gob.ar/dataset/945e10f1-eee7-48a2-b0ef-8aff11df8814/resource/873f216b-131b-4d43-b136-b232fff1e44e/download/serie-tiempo-turismo-interno-trimestral.csv"

dplyr::glimpse(readr::read_csv(url))
#> Rows: 36 Columns: 66
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr  (1): indice_tiempo
#> dbl (65): destino_destino_destino_destino_caba, destino_destino_destino_dest...
#> 
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Rows: 36
#> Columns: 66
#> $ indice_tiempo                                                                    <chr> …
#> $ destino_destino_destino_destino_caba                                             <dbl> …
#> $ destino_destino_destino_destino_cordoba                                          <dbl> …
#> $ destino_destino_destino_destino_cuyo                                             <dbl> …
#> $ destino_destino_destino_destino_litoral                                          <dbl> …
#> $ destino_destino_destino_destino_norte                                            <dbl> …
#> $ destino_destino_destino_destino_patagonia                                        <dbl> …
#> $ destino_destino_destino_destino_gba                                              <dbl> …
#> $ destino_destino_destino_destino_partidos_del_gba                                 <dbl> …
#> $ edad_edad_edad_edad_menores_de_14                                                <dbl> …
#> $ edad_edad_edad_edad_x14_a_29                                                     <dbl> …
#> $ edad_edad_edad_edad_x30_a_44                                                     <dbl> …
#> $ edad_edad_edad_edad_x45_a_59                                                     <dbl> …
#> $ edad_edad_edad_edad_x60_o_mas                                                    <dbl> …
#> $ motivo_motivo_motivo_motivo_vacaciones_ocio                                      <dbl> …
#> $ motivo_motivo_motivo_motivo_visita_a_familiares_y_amigos                         <dbl> …
#> $ motivo_motivo_motivo_motivo_trabajo_negocios                                     <dbl> …
#> $ motivo_motivo_motivo_motivo_otros                                                <dbl> …
#> $ origen_origen_origen_origen_caba                                                 <dbl> …
#> $ origen_origen_origen_origen_cordoba                                              <dbl> …
#> $ origen_origen_origen_origen_cuyo                                                 <dbl> …
#> $ origen_origen_origen_origen_litoral                                              <dbl> …
#> $ origen_origen_origen_origen_norte                                                <dbl> …
#> $ origen_origen_origen_origen_patagonia                                            <dbl> …
#> $ origen_origen_origen_origen_gba                                                  <dbl> …
#> $ origen_origen_origen_origen_partidos_del_gba                                     <dbl> …
#> $ quintil_quintil_quintil_quintil_quintiles_1_y_2                                  <dbl> …
#> $ quintil_quintil_quintil_quintil_quintiles_3_y_4                                  <dbl> …
#> $ quintil_quintil_quintil_quintil_quintil_5                                        <dbl> …
#> $ sexo_sexo_sexo_sexo_mujer                                                        <dbl> …
#> $ sexo_sexo_sexo_sexo_varon                                                        <dbl> …
#> $ alojamiento_alojamiento_alojamiento_alojamiento_segunda_vivienda                 <dbl> …
#> $ alojamiento_alojamiento_alojamiento_alojamiento_casa_de_familiares_y_amigos      <dbl> …
#> $ alojamiento_alojamiento_alojamiento_alojamiento_alquiler_por_temporada           <dbl> …
#> $ alojamiento_alojamiento_alojamiento_alojamiento_camping                          <dbl> …
#> $ alojamiento_alojamiento_alojamiento_alojamiento_hotel_1_2_y_3_estrellas          <dbl> …
#> $ alojamiento_alojamiento_alojamiento_alojamiento_hotel_4_y_5_estrellas            <dbl> …
#> $ alojamiento_alojamiento_alojamiento_alojamiento_otros                            <dbl> …
#> $ transporte_transporte_transporte_transporte_auto                                 <dbl> …
#> $ transporte_transporte_transporte_transporte_omnibus                              <dbl> …
#> $ transporte_transporte_transporte_transporte_avion                                <dbl> …
#> $ transporte_transporte_transporte_transporte_otros                                <dbl> …
#> $ pernocataciones_pernocataciones_pernocataciones_pernocataciones_caba             <dbl> …
#> $ pernocataciones_pernocataciones_pernocataciones_pernocataciones_cordoba          <dbl> …
#> $ pernocataciones_pernocataciones_pernocataciones_pernocataciones_cuyo             <dbl> …
#> $ pernocataciones_pernocataciones_pernocataciones_pernocataciones_litoral          <dbl> …
#> $ pernocataciones_pernocataciones_pernocataciones_pernocataciones_norte            <dbl> …
#> $ pernocataciones_pernocataciones_pernocataciones_pernocataciones_patagonia        <dbl> …
#> $ pernocataciones_pernocataciones_pernocataciones_pernocataciones_gba              <dbl> …
#> $ pernocataciones_pernocataciones_pernocataciones_pernocataciones_partidos_del_gba <dbl> …
#> $ gasto_medio_gasto_medio_gasto_medio_gasto_medio_caba                             <dbl> …
#> $ gasto_medio_gasto_medio_gasto_medio_gasto_medio_cordoba                          <dbl> …
#> $ gasto_medio_gasto_medio_gasto_medio_gasto_medio_cuyo                             <dbl> …
#> $ gasto_medio_gasto_medio_gasto_medio_gasto_medio_litoral                          <dbl> …
#> $ gasto_medio_gasto_medio_gasto_medio_gasto_medio_norte                            <dbl> …
#> $ gasto_medio_gasto_medio_gasto_medio_gasto_medio_patagonia                        <dbl> …
#> $ gasto_medio_gasto_medio_gasto_medio_gasto_medio_gba                              <dbl> …
#> $ gasto_medio_gasto_medio_gasto_medio_gasto_medio_partidos_del_gba                 <dbl> …
#> $ estadia_media_estadia_media_estadia_media_estadia_media_caba                     <dbl> …
#> $ estadia_media_estadia_media_estadia_media_estadia_media_cordoba                  <dbl> …
#> $ estadia_media_estadia_media_estadia_media_estadia_media_cuyo                     <dbl> …
#> $ estadia_media_estadia_media_estadia_media_estadia_media_litoral                  <dbl> …
#> $ estadia_media_estadia_media_estadia_media_estadia_media_norte                    <dbl> …
#> $ estadia_media_estadia_media_estadia_media_estadia_media_patagonia                <dbl> …
#> $ estadia_media_estadia_media_estadia_media_estadia_media_gba                      <dbl> …
#> $ estadia_media_estadia_media_estadia_media_estadia_media_partidos_del_gba         <dbl> …

Created on 2021-09-18 by the reprex package (v2.0.0)

Va posible ejemplo/base para pivot_* y algunos trucos de limpieza de datos:

parques <- read_csv("http://datos.yvera.gob.ar/dataset/458bcbe1-855c-4bc3-a1c9-cd4e84fedbbc/resource/78aea6ed-761c-4659-bdf2-7fcb0f616fad/download/serie-tiempo-parques-nacionales-mensual.csv")

parques %>% 
  pivot_longer(cols = -c("indice_tiempo", "residentes", "no_residentes", "total"),
               names_to = "region") %>% 
  mutate(region = str_replace(region, "buenos_aires*", "buenos-aires"),
         region = str_replace(region, "no_residentes", "noresidentes")) %>% 
  separate(region, into = c("region", "tipo_visitante"), sep = "_") %>% 
  select(-c("residentes", "no_residentes", "total")) %>% 
  pivot_wider(names_from = tipo_visitante, values_from = value, names_repair = "unique")

Faltaría encontrar algo con lo que hacer un par de joins. Sería ideal usar esta misma base y alguna otra para no cambiar de base en la mitad del encuentro/capítulo.

Podría unirse con esta de hoteles? Hay que manipular los nombres un poco, pero va.

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(tidyr)
library(stringr)
library(ggplot2)

parques <- readr::read_csv("http://datos.yvera.gob.ar/dataset/458bcbe1-855c-4bc3-a1c9-cd4e84fedbbc/resource/78aea6ed-761c-4659-bdf2-7fcb0f616fad/download/serie-tiempo-parques-nacionales-mensual.csv")
#> Rows: 160 Columns: 22
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr  (1): indice_tiempo
#> dbl (21): residentes, no_residentes, total, buenos_aires_residentes, buenos_...
#> 
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

hoteles <- readr::read_csv("http://datos.yvera.gob.ar/dataset/93db331e-6970-4d74-8589-c1223ac9c282/resource/1f6b78aa-d3b4-440a-bd7d-30d76e1728aa/download/viajeros-hospedados-residentes-y-no-residentes-por-destino.csv")
#> Rows: 2351 Columns: 5
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (4): indice_tiempo, region_de_destino, origen_viajeros, observaciones
#> dbl (1): viajeros
#> 
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

hoteles <- hoteles |> 
  mutate(region_de_destino = tolower(region_de_destino) |> 
           str_replace(" ", "-") |> 
           str_replace("ó", "o")) |> 
  pivot_wider(names_from  = origen_viajeros, values_from = viajeros) |> 
  rename(hoteles_noresidentes = `No residentes`, hoteles_residentes = Residentes, 
         region = region_de_destino)




parques <- parques %>% 
  pivot_longer(cols = -c("indice_tiempo", "residentes", "no_residentes", "total"),
               names_to = "region") %>% 
  mutate(region = str_replace(region, "buenos_aires*", "buenos-aires"),
         region = str_replace(region, "no_residentes", "noresidentes")) %>% 
  separate(region, into = c("region", "tipo_visitante"), sep = "_") %>% 
  select(-c("residentes", "no_residentes", "total")) %>% 
  pivot_wider(names_from = tipo_visitante, values_from = value, names_repair = "unique")


parques |> 
  left_join(hoteles, by = c("region", "indice_tiempo")) |> 
  ggplot(aes(residentes, hoteles_residentes)) +
  geom_point()
#> Warning: Removed 42 rows containing missing values (geom_point).

Created on 2021-10-03 by the reprex package (v2.0.0)

La base de hoteles tiene una región (CABA) que no está en la base de parques. Eso puede servir para mostrar los distintos tipos de join.

Usé esto. No me cierra al 100% pero permite explicar varias cosas.