Estudio de Asistentes al CTBA

Federico M. Bonazzi -Data Cultura BA-

2019-07-11

ASISTENTES AL TEATRO EN CABA

Un acercamiento a partir de los asistentes al CTBA

PROPÓSITO

El propósito de este informe es poder caracterizar a los asistentes al Complejo Teatral Buenos Aires (CTBA), a partir de la base de usuario de quienes compraron entradas via online en 2018. Para ello, se describirá la base a partir de sus distintas variables. Además, a través de herramientas geoespaciales, se cruzará la información de los asistentes con información censal para establecer su perfil sociodemográfico (observando qué caracteristicas son estadísticamente significativas para establecer dicho perfil).

DATASETS

El principal Dataset a utilizar es el de usuario de CTBA para el año 2018. Este dataset presenta todas las transacciones online para la adiquisicion de entradas a funciones de teatro circuito oficial. Las variables que presenta son: Nombre, apellido, mail del usuario. Fecha de nacimiento de los usuarios Domicilio Ciudad Provincia País CP Género: del comprador Evento: qué obra de teatro, recital, etc Día *Lugar: teatro en el que se realizó la función

Otros dataset a utilizar son: 1- ESPACIOS CULTURALES DE LA CIUDAD DE BUENOS AIRES, de Data Cultura BA. Para obtener información de los espacios culturales de la CABA. 2-Información censal por radio de la Ciudad de Buenos Aires, a partir del Censo 2010, georreferenciados. 3-Barrios de la CABA, de Data BA, georreferenciados.

DESARROLLO

Puesta a punto y exploración de la base

Se abren las librerias que se utilizarán

library (tidyverse)
library (ggplot2)
library(sf)
library(httr)
library(jsonlite)
library(readr)
library(lubridate)
library(tufte)
library(eeptools)
library ("sp")
library(rgeos)
library(lwgeom)

Se carga la base de usuarios de CTBA y se osberva cómo se compone el dataset

ctba18 <- read_csv("C:/Users/Claudia/Documents/R/GCBA Datos/Taller CABA/ctba18.csv")

str(ctba18)
## Classes 'spec_tbl_df', 'tbl_df', 'tbl' and 'data.frame': 25789 obs. of  19 variables:
##  $ Nombre               : chr  "venceslao ariel" "Patricio" "Patricio German" "paula" ...
##  $ Apellido             : chr  "gerlich" "Uranga" "Barletta" "briuolo" ...
##  $ Documento            : chr  "24501520" "28910621" "35725907" "10203040" ...
##  $ Fecha de nac.        : Date, format: "1975-03-02" "1981-06-25" ...
##  $ Mail                 : chr  "agerlich75@gmail.com" "pato_u@hotmail.com" "pbarletta@gmail.com" "pbriuolo@gmail.com" ...
##  $ Domicilio            : chr  "combate de los pozos 1138 3 c" "Av Díaz Vélez 3841" "Moctezuma 1036" "Potosí 4052" ...
##  $ Ciudad               : chr  "caba" "CABA" "C.A.B.A" "caba" ...
##  $ Provincia            : chr  "Ciudad Autonoma de Buenos Aires" "Ciudad Autonoma de Buenos Aires" "Ciudad Autonoma de Buenos Aires" "Ciudad Autonoma de Buenos Aires" ...
##  $ CP                   : chr  "1222" "1200" "1407" "1199" ...
##  $ Pais                 : chr  "Argentina" "Argentina" "Argentina" "Argentina" ...
##  $ Genero               : chr  "H" "H" "H" "M" ...
##  $ Evento               : chr  "La vuelta al mundo en 80 mundos" "Madre coraje" "La vuelta al mundo en 80 mundos" "Blum" ...
##  $ Dia                  : POSIXct, format: "2018-07-21 15:00:00" "2018-12-01 21:00:00" ...
##  $ Lugar                : chr  "CTBA - Teatro Regio" "CTBA - Teatro Regio" "CTBA - Teatro Regio" "CTBA - Teatro Regio" ...
##  $ columna_14           : logi  NA NA NA NA NA NA ...
##  $ direccion_normalizada: chr  "COMBATE DE LOS POZOS 1138, CABA" "DIAZ VELEZ AV. 3841, CABA" "MOCTEZUMA 1036, CABA" "POTOSI 4052, CABA" ...
##  $ geometry             : chr  "POINT (-58.3930035897 -34.6220360987)" "POINT (-58.4205179695 -34.6084677)" "POINT (-58.4949711811 -34.627832926)" "POINT (-58.4237642146 -34.6073197621)" ...
##  $ barrio               : chr  "San Cristóbal" "Almagro" "Vélez Sarsfield" "Almagro" ...
##  $ comuna               : chr  "Comuna 3" "Comuna 5" "Comuna 10" "Comuna 5" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   Nombre = col_character(),
##   ..   Apellido = col_character(),
##   ..   Documento = col_character(),
##   ..   `Fecha de nac.` = col_date(format = ""),
##   ..   Mail = col_character(),
##   ..   Domicilio = col_character(),
##   ..   Ciudad = col_character(),
##   ..   Provincia = col_character(),
##   ..   CP = col_character(),
##   ..   Pais = col_character(),
##   ..   Genero = col_character(),
##   ..   Evento = col_character(),
##   ..   Dia = col_datetime(format = ""),
##   ..   Lugar = col_character(),
##   ..   columna_14 = col_logical(),
##   ..   direccion_normalizada = col_character(),
##   ..   geometry = col_character(),
##   ..   barrio = col_character(),
##   ..   comuna = col_character()
##   .. )

El dataset tiene 25789 observaciones (aquí refieren a transacciones realizadas).

Se observa que la columna que debe proveer la ubicación geográfica, está como clase character, por lo que tengo que tranformarla. Se define también el sistema de coordenadas (4326).

ctba18$geometry <- st_as_sfc(ctba18$geometry, crs = 4326)

class(ctba18$geometry)
## [1] "sfc_POINT" "sfc"

A continuación exploro los valores que presenta el dataset:

summary(ctba18)
##     Nombre            Apellido          Documento        
##  Length:25789       Length:25789       Length:25789      
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##                                                          
##  Fecha de nac.            Mail            Domicilio        
##  Min.   :1759-06-12   Length:25789       Length:25789      
##  1st Qu.:1960-10-26   Class :character   Class :character  
##  Median :1974-04-16   Mode  :character   Mode  :character  
##  Mean   :1996-09-02                                        
##  3rd Qu.:1986-01-09                                        
##  Max.   :4089-10-15                                        
##  NA's   :130                                               
##     Ciudad           Provincia              CP           
##  Length:25789       Length:25789       Length:25789      
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##                                                          
##      Pais              Genero             Evento         
##  Length:25789       Length:25789       Length:25789      
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##                                                          
##       Dia                         Lugar           columna_14    
##  Min.   :2018-03-01 21:00:00   Length:25789       Mode:logical  
##  1st Qu.:2018-06-01 20:30:00   Class :character   NA's:25789    
##  Median :2018-08-03 20:00:00   Mode  :character                 
##  Mean   :2018-08-02 18:52:30                                    
##  3rd Qu.:2018-09-29 17:00:00                                    
##  Max.   :2018-12-16 20:30:00                                    
##                                                                 
##  direccion_normalizada          geometry        barrio         
##  Length:25789          POINT        :25789   Length:25789      
##  Class :character      epsg:4326    :    0   Class :character  
##  Mode  :character      +proj=long...:    0   Mode  :character  
##                                                                
##                                                                
##                                                                
##                                                                
##     comuna         
##  Length:25789      
##  Class :character  
##  Mode  :character  
##                    
##                    
##                    
## 

Se analizan algunas columnas para ver si son utiles para el análisis o se pueden desechar

head (ctba18$Ciudad,20)
##  [1] "caba"                            "CABA"                           
##  [3] "C.A.B.A"                         "caba"                           
##  [5] "lanus"                           "CAPITAL FEDERAL"                
##  [7] "CABA"                            "San Martín"                     
##  [9] "CABA"                            "CABA"                           
## [11] "Caba"                            "Caballito"                      
## [13] "capital federal"                 "belgrano"                       
## [15] "Capital Federal"                 "palermo"                        
## [17] "buenos aires"                    "caba"                           
## [19] "Caba"                            "Ciudad Autónoma de Buenos Aires"
head (ctba18$Provincia, 20)
##  [1] "Ciudad Autonoma de Buenos Aires" "Ciudad Autonoma de Buenos Aires"
##  [3] "Ciudad Autonoma de Buenos Aires" "Ciudad Autonoma de Buenos Aires"
##  [5] "Buenos Aires"                    "CAPITAL FEDERAL"                
##  [7] "Ciudad Autonoma de Buenos Aires" "Buenos Aires"                   
##  [9] "Ciudad de Buenos Aires"          "Buenos Aires"                   
## [11] "Ciudad Autonoma de Buenos Aires" "Capital Federal"                
## [13] "Ciudad Autonoma de Buenos Aires" "Ciudad Autonoma de Buenos Aires"
## [15] "Ciudad Autonoma de Buenos Aires" "Ciudad Autonoma de Buenos Aires"
## [17] "C.A.B.A."                        "Ciudad Autonoma de Buenos Aires"
## [19] "Buenos Aires"                    "Ciudad Autonoma de Buenos Aires"
table (ctba18$comuna)
## 
##  Comuna 1 Comuna 10 Comuna 11 Comuna 12 Comuna 13 Comuna 14 Comuna 15 
##      2852       722      1041      1605      3135      3779      2680 
##  Comuna 2  Comuna 3  Comuna 4  Comuna 5  Comuna 6  Comuna 7  Comuna 8 
##      1965      1593       907      1865      1984      1040       146 
##  Comuna 9 
##       474
table (ctba18$Lugar)
## 
##                       CTBA - CCK - Sala Argentina 
##                                                 5 
##                       CTBA - CCK - Sala Sinfonica 
##                                                 5 
##                    CTBA - Parroquia San Ildefonso 
##                                                 5 
##                        CTBA - Teatro de la Ribera 
##                                               950 
##                               CTBA - Teatro Regio 
##                                              8132 
##          CTBA - Teatro San Martin - CEDOC 4° piso 
##                                                57 
##       CTBA - Teatro San Martin - Sala Casacuberta 
##                                              6612 
##   CTBA - Teatro San Martin - Sala Casacuberta S/N 
##                                                88 
## CTBA - Teatro San Martin - Sala Cunill Cabanellas 
##                                              2064 
##   CTBA - Teatro San Martin - Sala Martin Coronado 
##                                              4570 
##        CTBA - Teatro San Martin – Visitas guiadas 
##                                                 2 
##                           CTBA - Teatro Sarmiento 
##                                              3299
head (ctba18$barrio, 20)
##  [1] "San Cristóbal"    "Almagro"          "Vélez Sarsfield" 
##  [4] "Almagro"          "Parque Chacabuco" "Recoleta"        
##  [7] "Chacarita"        "Almagro"          "Palermo"         
## [10] "Palermo"          "Palermo"          "Caballito"       
## [13] "Mataderos"        "Belgrano"         "Villa Ortúzar"   
## [16] "Colegiales"       "Almagro"          "Belgrano"        
## [19] "Almagro"          "Parque Patricios"
head (ctba18$CP, 20)
##  [1] "1222"  "1200"  "1407"  "1199"  "1824"  "1425"  "1427"  "1650" 
##  [9] "1425"  "1426"  "1425"  "1424"  "1440"  "1428"  "1430"  "1426" 
## [17] "1177"  "1428"  "1704"  "C1437"
table (ctba18$Genero)
## 
##     H     M 
##  9656 15888

Se observa que CP, Ciudad y Provincia están muy sucias, además, esa información ya está provista por la geolocalización, la variable barrio y comuna. Lo mismo sucede con la variable Domicilio. Para identificar a cada usuario, se utilizará la variable mail.

Limpiar el data set, generando uno nuevo con menos variables

ctba18v0 <-  ctba18 %>%
  select ( -Domicilio , -Ciudad, -Provincia, -CP, -Nombre, -Apellido, -Documento, -Pais, -columna_14)

Comola información venía a nivel sala de teatro (varibale Lugar), se crea una nueva definiendo los teatros:

ctba18v0 <- mutate (ctba18v0, teatro =  Lugar)

ctba18v0$teatro <- ctba18v0$teatro %>%
  str_replace ("CTBA - CCK - Sala Argentina", "CCK") %>%
  str_replace ("CTBA - CCK - Sala Sinfonica", "CCK") %>%
  str_replace ("CTBA - Teatro Sarmiento", "Teatro Sarmiento") %>%
  str_replace ("CTBA - Parroquia San Ildefonso", "Pquia San Ildefonso") %>%
  str_replace ("CTBA - Teatro de la Ribera", "Teatro de la Ribera") %>%
  str_replace ( "CTBA - Teatro Regio", "Teatro Regio") %>%
  str_replace ("CTBA - Teatro San Martin - CEDOC 4° piso", "Teatro San Martin") %>%
  str_replace ( "CTBA - Teatro San Martin - Sala Casacuberta", "Teatro San Martin") %>%
  str_replace ( "CTBA - Teatro San Martin - Sala Casacuberta S/N", "Teatro San Martin") %>%
  str_replace ("CTBA - Teatro San Martin - Sala Cunill Cabanellas", "Teatro San Martin") %>%
  str_replace ("CTBA - Teatro San Martin - Sala Martin Coronado", "Teatro San Martin") %>%
  str_replace ("CTBA - Teatro San Martin - Visitas guiadas", "Teatro San Martin") %>%
  str_replace ("Teatro San Martin S/N", "Teatro San Martin") %>%
  str_replace ( " CTBA - Teatro Sarmiento", "Teatro Sarmiento")

table(ctba18v0$teatro)
## 
##                                        CCK 
##                                         10 
## CTBA - Teatro San Martin – Visitas guiadas 
##                                          2 
##                        Pquia San Ildefonso 
##                                          5 
##                        Teatro de la Ribera 
##                                        950 
##                               Teatro Regio 
##                                       8132 
##                          Teatro San Martin 
##                                      13391 
##                           Teatro Sarmiento 
##                                       3299

Comienzo a analizar los resultados:

ggplot() +
  geom_sf(data = ctba18v0, aes (colour = Genero)) + 
  coord_sf(crs = st_crs(4326)) +
  labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por compras online, CABA, 2018",
         caption = "Fuente: Data Cultura",
         fill = "Genero") +
  facet_wrap(~teatro)

Se observa que el CCK y la parroquia tienen muy pocos casos y desde los mismo puntos.

filter(ctba18v0, teatro == 'CCK' | teatro == 'Pquia San Ildefonso')
## # A tibble: 15 x 11
##    `Fecha de nac.` Mail  Genero Evento Dia                 Lugar
##    <date>          <chr> <chr>  <chr>  <dttm>              <chr>
##  1 NA              pedr~ <NA>   XXII ~ 2018-12-12 21:00:00 CTBA~
##  2 NA              pedr~ <NA>   XXII ~ 2018-12-12 21:00:00 CTBA~
##  3 NA              pedr~ <NA>   XXII ~ 2018-12-07 20:00:00 CTBA~
##  4 NA              pedr~ <NA>   XXII ~ 2018-12-14 20:30:00 CTBA~
##  5 1982-07-06      gonr~ H      XXII ~ 2018-12-12 21:00:00 CTBA~
##  6 1978-03-02      lore~ M      XXII ~ 2018-12-07 20:00:00 CTBA~
##  7 1982-07-06      gonr~ H      XXII ~ 2018-12-14 20:30:00 CTBA~
##  8 1978-03-02      lore~ M      XXII ~ 2018-12-14 20:30:00 CTBA~
##  9 1957-12-31      patr~ M      XXII ~ 2018-12-14 20:30:00 CTBA~
## 10 1982-07-06      gonr~ H      XXII ~ 2018-12-07 20:00:00 CTBA~
## 11 NA              pedr~ <NA>   XXII ~ 2018-12-07 20:00:00 CTBA~
## 12 1957-12-31      patr~ M      XXII ~ 2018-12-12 21:00:00 CTBA~
## 13 1978-03-02      lore~ M      XXII ~ 2018-12-12 21:00:00 CTBA~
## 14 1957-12-31      patr~ M      XXII ~ 2018-12-07 20:00:00 CTBA~
## 15 NA              pedr~ <NA>   XXII ~ 2018-12-14 20:30:00 CTBA~
## # ... with 5 more variables: direccion_normalizada <chr>, geometry <POINT
## #   [°]>, barrio <chr>, comuna <chr>, teatro <chr>

Todo muy sospechoso, se eliminan estos casos.

ctba18v0 <- filter (ctba18v0, teatro != 'CCK' & teatro != 'Pquia San Ildefonso')

table(ctba18v0$teatro)
## 
## CTBA - Teatro San Martin – Visitas guiadas 
##                                          2 
##                        Teatro de la Ribera 
##                                        950 
##                               Teatro Regio 
##                                       8132 
##                          Teatro San Martin 
##                                      13391 
##                           Teatro Sarmiento 
##                                       3299

También se observó que hay NA en género, también se quitan.

ctba18v0 <- ctba18v0 %>%
  filter(Genero != 'NA',
         comuna != 'NA')

Además, se agrega un layer de barrois para para ver mejor:

barrios <- st_read('https://data.buenosaires.gob.ar/dataset/19/resource/1c3d185b-fdc9-474b-b41b-9bd960a3806e/download/barrios.geojson')
## Reading layer `barrios' from data source `https://data.buenosaires.gob.ar/dataset/19/resource/1c3d185b-fdc9-474b-b41b-9bd960a3806e/download/barrios.geojson' using driver `GeoJSON'
## Simple feature collection with 48 features and 4 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -58.53092 ymin: -34.70574 xmax: -58.33455 ymax: -34.52799
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
summary(barrios)
##        BARRIO       COMUNA               PERIMETRO                 AREA   
##  AGRONOMIA: 1   1      : 6   10021.45966480549: 1   1232275.092474457: 1  
##  ALMAGRO  : 1   10     : 6   10165.62712936149: 1   1279951.372561846: 1  
##  BALVANERA: 1   15     : 6   10597.25280900626: 1   1334146.08283464 : 1  
##  BARRACAS : 1   11     : 4   10674.41646756023: 1   1385411.513739759: 1  
##  BELGRANO : 1   12     : 4   10990.96447148555: 1   1406833.595801687: 1  
##  BOCA     : 1   4      : 4   11124.63579209356: 1   15772496.3315    : 1  
##  (Other)  :42   (Other):18   (Other)          :42   (Other)          :42  
##           geometry 
##  POLYGON      :48  
##  epsg:4326    : 0  
##  +proj=long...: 0  
##                    
##                    
##                    
## 

y gafico:

ggplot() +
  geom_sf(data=barrios) +
  geom_sf(data = ctba18v0, aes (colour = Genero)) + 
  coord_sf(crs = st_crs(4326)) +
  labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por teatro, CABA, 2018",
         caption = "Fuente: Data Cultura",
         fill = "Genero") +
  facet_wrap(~teatro) +
  theme_minimal()

ggplot(ctba18v0) +
    geom_bar (aes(x = Genero, fill = Genero)) +
    labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por género, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Género",
         y = "Cantidad") +
    coord_flip()

Se observa que hay mayoria de mujeres (más de 2/3 del total)

ggplot(ctba18v0) +
    geom_bar (aes(x = barrio, fill = Genero)) +
  labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por barrio, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Barrio",
         y = "Cantidad",
       fill ="Género") +
    coord_flip()

ggplot(ctba18v0) +
    geom_bar (aes(x = comuna,  fill = Genero)) +
  labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por comuna, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Comuna",
         y = "Cantidad",
       fill ="Género") +
  coord_flip()

Los asistentes radican mayoritariamente en la comuna 14, 13, 1 y 15. La comuna 8 presenta muy pocos asistentes.

ggplot(ctba18v0) +
    geom_bar(aes(x = teatro, fill = Genero)) +
  labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por teatro, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Teatro",
         y = "Cantidad",
       fill ="Género") +
    coord_flip()

ggplot(ctba18v0) +
    geom_bar(aes(x = comuna, fill = Genero)) +
    facet_wrap(~teatro) +
  labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por teatro y comuna, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Comuna",
         y = "Cantidad",
         fill = "Género") +
    coord_flip()

Se observa que el Teatro Sarmiento, que se encuentra en la Comuna 14, recibe muchos visistantes de esa misma comuna. Algo similar sucede con el teatro de la Ribera que prenta mayoria de asistentes de la comuna 1.

ggplot(ctba18v0) +
    geom_bar(aes(x = month (Dia), fill = teatro)) +
    facet_wrap(~teatro) +
    labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por mes y teatro, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Mes",
         y = "Cantidad",
         fill = "Teatro")

Se observa en qué momento del año está concentrada la actividad en cada teatro.Así se ve que el Sarmiento tuvo picos de actividad en agosto y septiembre, que el San Martín en vacaciones de invierno (julio y agosto) y en noviembre. El teatro de la Ribera en Septiembre y el Regio en julio.

ggplot(ctba18v0) +
    geom_bar(aes(x = wday (Dia, label=TRUE, abbr=FALSE, week_start = 2), fill = teatro)) +
    facet_wrap(~teatro) +
    labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por día y teatro, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Día",
         y = "Cantidad",
         fill = "Teatro")

Por otro lado, quiero calcular la edad de los asistentes, pero el dataset sólo tiene la fecha de nacimiento. Para calcularla, tengo que tener las dos variables como Date

class(ctba18v0$`Fecha de nac.`)
## [1] "Date"
class (ctba18v0$Dia)
## [1] "POSIXct" "POSIXt"

La variable Dia no es del tipo Date, tengo que transformarla

ctba18v0 <- mutate(ctba18v0, fecha = as.Date(ctba18v0$Dia))

class(ctba18v0$fecha)
## [1] "Date"

Lo segundo para poder calcular es que las fechas de inicio (de nacimiento) tiene que ser menor a la de fin (momento de la transacción). Por lo que creo un nuevo dataset con la variable edad

ctbaz<- subset(ctba18v0, ctba18v0$fecha > ctba18v0$`Fecha de nac.`)

ctbaz$edad <-  age_calc(ctbaz$`Fecha de nac.`, ctbaz$fecha, units = 'years', precise = TRUE)

ctbaz$edad <- round(ctbaz$edad, digits = 0)

class(ctbaz$edad)
## [1] "numeric"
summary(ctbaz)
##  Fecha de nac.            Mail              Genero         
##  Min.   :1759-06-12   Length:24358       Length:24358      
##  1st Qu.:1960-01-30   Class :character   Class :character  
##  Median :1972-09-18   Mode  :character   Mode  :character  
##  Mean   :1972-06-12                                        
##  3rd Qu.:1984-06-07                                        
##  Max.   :2018-11-18                                        
##     Evento               Dia                         Lugar          
##  Length:24358       Min.   :2018-03-01 21:00:00   Length:24358      
##  Class :character   1st Qu.:2018-06-01 20:37:30   Class :character  
##  Mode  :character   Median :2018-08-03 20:30:00   Mode  :character  
##                     Mean   :2018-08-03 02:47:47                     
##                     3rd Qu.:2018-09-29 17:00:00                     
##                     Max.   :2018-12-16 20:30:00                     
##  direccion_normalizada          geometry        barrio         
##  Length:24358          POINT        :24358   Length:24358      
##  Class :character      epsg:4326    :    0   Class :character  
##  Mode  :character      +proj=long...:    0   Mode  :character  
##                                                                
##                                                                
##                                                                
##     comuna             teatro              fecha           
##  Length:24358       Length:24358       Min.   :2018-03-01  
##  Class :character   Class :character   1st Qu.:2018-06-01  
##  Mode  :character   Mode  :character   Median :2018-08-03  
##                                        Mean   :2018-08-02  
##                                        3rd Qu.:2018-09-29  
##                                        Max.   :2018-12-16  
##       edad       
##  Min.   :  0.00  
##  1st Qu.: 34.00  
##  Median : 46.00  
##  Mean   : 46.14  
##  3rd Qu.: 58.00  
##  Max.   :259.00

Veo que en edad tengo valores muy altos (gente de 259 años!) y muy bajos (0 años), los saco del analisis, son compras por tarjeta de credito por eso suponemos una cota de mínimo de edad para las transacciones de 15 año.

subset (ctbaz, ctbaz$edad>100)
## # A tibble: 26 x 13
##    `Fecha de nac.` Mail  Genero Evento Dia                 Lugar
##    <date>          <chr> <chr>  <chr>  <dttm>              <chr>
##  1 1856-09-27      belu~ M      Blum   2018-08-19 20:00:00 CTBA~
##  2 1844-05-26      jo.g~ M      La Te~ 2018-08-02 21:00:00 CTBA~
##  3 1834-08-24      gonz~ M      Petró~ 2018-08-16 21:00:00 CTBA~
##  4 1759-06-12      jona~ H      El hi~ 2018-08-02 20:00:00 CTBA~
##  5 1899-12-31      fybl~ M      Las a~ 2018-04-04 20:30:00 CTBA~
##  6 1868-02-15      emie~ M      Miedo  2018-03-09 21:00:00 CTBA~
##  7 1796-02-16      msol~ M      Blum   2018-07-19 20:30:00 CTBA~
##  8 1818-07-22      luci~ M      Retro~ 2018-04-28 21:00:00 CTBA~
##  9 1885-12-02      ilet~ M      Petró~ 2018-07-26 21:00:00 CTBA~
## 10 1856-09-27      belu~ M      XXII ~ 2018-11-27 21:00:00 CTBA~
## # ... with 16 more rows, and 7 more variables:
## #   direccion_normalizada <chr>, geometry <POINT [°]>, barrio <chr>,
## #   comuna <chr>, teatro <chr>, fecha <date>, edad <dbl>
subset (ctbaz, ctbaz$edad<15)
## # A tibble: 586 x 13
##    `Fecha de nac.` Mail  Genero Evento Dia                 Lugar
##    <date>          <chr> <chr>  <chr>  <dttm>              <chr>
##  1 2018-01-25      bell~ H      Blum   2018-07-12 20:30:00 CTBA~
##  2 2018-01-03      joac~ H      Cae l~ 2018-11-08 20:30:00 CTBA~
##  3 2018-08-18      mart~ H      Blum   2018-09-09 20:00:00 CTBA~
##  4 2008-05-04      juan~ H      Divin~ 2018-11-23 20:00:00 CTBA~
##  5 2018-06-10      mech~ M      El hi~ 2018-08-12 20:00:00 CTBA~
##  6 2018-04-24      romi~ M      Blum   2018-08-30 20:30:00 CTBA~
##  7 2018-05-22      roxa~ M      Divin~ 2018-09-16 19:00:00 CTBA~
##  8 2018-05-22      roxa~ M      La Te~ 2018-07-18 21:00:00 CTBA~
##  9 2018-01-04      tang~ H      Blum   2018-08-04 20:30:00 CTBA~
## 10 2018-05-08      pial~ M      La Te~ 2018-08-05 21:00:00 CTBA~
## # ... with 576 more rows, and 7 more variables:
## #   direccion_normalizada <chr>, geometry <POINT [°]>, barrio <chr>,
## #   comuna <chr>, teatro <chr>, fecha <date>, edad <dbl>
ctbaz <- subset (ctbaz, ctbaz$edad<100)

ctbaz <- subset (ctbaz, ctbaz$edad>14)

Ahora puedo graficar los comportamientos por edad

ggplot(ctbaz, aes(x=edad,fill = teatro)) +
  geom_histogram(binwidth = 5) + 
  labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por edad, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Edad",
         y = "Cantidad",
         fill = "Teatro")

ggplot(ctbaz, aes(x=edad, fill=Genero)) +
  geom_histogram(binwidth = 5) +
  facet_wrap(~teatro) +
  labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por edad y teatro, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Edad",
         y = "Cantidad",
         fill = "Género")

Por un lado es interesante notar que en general hay picos de asistencia entre el público de 30-40 años y de 55-65 años. Por otro lado, el Teatro Sarmiento y el de la Ribera presentan comportamientos específicos, el primero con público más jóven y el segundo más adulto. Esto se explica por el tipo de programación de estos teatros (más experimental, por un lado y más clásica, por el otro). No parecieran haber diferencias por género relacionadas con la edad.

ggplot(ctbaz, aes(x=edad, fill = teatro)) +
  geom_histogram(binwidth = 5) +
  facet_wrap(~hour(Dia)) +
  labs(title = "Asistentes a teatros del GCBA",
         subtitle = "Por edad y hora, CABA, 2018",
         caption = "Fuente: Data Cultura",
         x = "Edad",
         y = "Cantidad",
         fill = "Teatro")