+ - 0:00:00
Notes for current slide
Notes for next slide

Instrumentos de Análisis Urbanos II

Maestría en Economía Urbana

Universidad Torcuato Di Tella

11/07/2023

1 / 14
2 / 14

Sesion 4

Domar los Datos II

+ {dplyr}

3 / 14

Importar datos de inmuebles:

datos <- vroom::vroom("https://infra.datos.gob.ar/catalog/otros/dataset/6/distribution/6.1/download/inmuebles-estado-nacional.csv")
4 / 14

Inspeccionamos dataset

skimr::skim(datos)

5 / 14

+ verbos de {dplyr}

6 / 14

+ verbos de {dplyr}

  • n()
6 / 14

+ verbos de {dplyr}

  • n()

  • slice() (y variantes: slice_*())

6 / 14

+ verbos de {dplyr}

  • n()

  • slice() (y variantes: slice_*())

  • rename()

6 / 14

+ verbos de {dplyr}

  • n()

  • slice() (y variantes: slice_*())

  • rename()

  • case_when() (re versión de ifelse())

6 / 14

+ verbos de {dplyr}

  • n()

  • slice() (y variantes: slice_*())

  • rename()

  • case_when() (re versión de ifelse())

  • Variantes de mutate_*() y summarise_*()

6 / 14

+ verbos de {dplyr}

  • n()

  • slice() (y variantes: slice_*())

  • rename()

  • case_when() (re versión de ifelse())

  • Variantes de mutate_*() y summarise_*()

nuevo {dplyr}

  • across()
6 / 14

+ verbos de {dplyr}

  • n()

  • slice() (y variantes: slice_*())

  • rename()

  • case_when() (re versión de ifelse())

  • Variantes de mutate_*() y summarise_*()

nuevo {dplyr}

  • across()

  • grupos por filas con rowwise()

6 / 14

Datos relacionales

Tidy Explain, Garrick Aden‑Buie

7 / 14

Datos relacionales

3 tipos:

  • Uniones de transformación (del inglés mutating joins), que agregan nuevas variables a un data frame a partir de las observaciones coincidentes en otra tabla (vg left_join())
8 / 14

Datos relacionales

3 tipos:

  • Uniones de transformación (del inglés mutating joins), que agregan nuevas variables a un data frame a partir de las observaciones coincidentes en otra tabla (vg left_join())

  • Uniones de filtro (del inglés filtering joins), que filtran observaciones en un data frame con base en si coinciden o no con una observación de otra tabla (vg anti_join()).

8 / 14

Datos relacionales

3 tipos:

  • Uniones de transformación (del inglés mutating joins), que agregan nuevas variables a un data frame a partir de las observaciones coincidentes en otra tabla (vg left_join())

  • Uniones de filtro (del inglés filtering joins), que filtran observaciones en un data frame con base en si coinciden o no con una observación de otra tabla (vg anti_join()).

  • Operaciones de conjuntos (del inglés set operations), que tratan las observaciones como elementos de un conjunto (vg set_diff()).

Datos Relacionales - R4DS

8 / 14

Domar los Datos

(II Parte)

9 / 14

Extracción de texto

10 / 14

Extracción de texto

Extraer caracteres según la posición en el texto:

library(tidyverse)
library(tidyverse)
str_sub(string = texto,
start = posicion_inicial,
end = posicion_final)
10 / 14

Extracción de texto

Extraer caracteres según la posición en el texto:

library(tidyverse)
library(tidyverse)
str_sub(string = texto,
start = posicion_inicial,
end = posicion_final)

Ejemplo 1:

texto_ejemplo1 <- "año 1"
str_sub(string = texto_ejemplo1,
start = 5,
end = 5)
## [1] "1"
10 / 14

Extracción de texto

Extraer caracteres según la posición en el texto:

library(tidyverse)
library(tidyverse)
str_sub(string = texto,
start = posicion_inicial,
end = posicion_final)

Ejemplo 1:

texto_ejemplo1 <- "año 1"
str_sub(string = texto_ejemplo1,
start = 5,
end = 5)
## [1] "1"

Ejemplo 2:

texto_ejemplo2 <- c("año 1", "año 2", "año 3")
str_sub(string = texto_ejemplo2,
start = 5,
end = 5)
## [1] "1" "2" "3"
10 / 14

Extracción de texto

Extraer caracteres según la posición en el texto:

library(tidyverse)
library(tidyverse)
str_sub(string = texto,
start = posicion_inicial,
end = posicion_final)

Ejemplo 1:

texto_ejemplo1 <- "año 1"
str_sub(string = texto_ejemplo1,
start = 5,
end = 5)
## [1] "1"

Ejemplo 2:

texto_ejemplo2 <- c("año 1", "año 2", "año 3")
str_sub(string = texto_ejemplo2,
start = 5,
end = 5)
## [1] "1" "2" "3"

¿Y al revés?

10 / 14

Espacios en blanco

Completar texto:

str_pad(string = texto,
width = ancho ideal del texto,
side = donde agregar,
pad = qué agregar)

Ejemplo:

texto_ejemplo <- c("1", "011", "01", "0111")
str_pad(string = texto_ejemplo,
width = 4,
side = "left",
pad = "0")
## [1] "0001" "0011" "0001" "0111"
11 / 14

Espacios en blanco

Completar texto:

str_pad(string = texto,
width = ancho ideal del texto,
side = donde agregar,
pad = qué agregar)

Ejemplo:

texto_ejemplo <- c("1", "011", "01", "0111")
str_pad(string = texto_ejemplo,
width = 4,
side = "left",
pad = "0")
## [1] "0001" "0011" "0001" "0111"
texto_con_pad <- str_pad(string = texto_ejemplo,
width = 4,
side = "left",
pad = "0")
str_sub(string = texto_con_pad,
start = 1,
end = 3)
## [1] "000" "001" "000" "011"
11 / 14

Espacios en blanco

Eliminar espacios en blanco

str_trim(string = texto,
side = lado sobre el que trabaja)
12 / 14

Espacios en blanco

Eliminar espacios en blanco

str_trim(string = texto,
side = lado sobre el que trabaja)

Ejemplo:

texto_ejemplo <- c("acá no debería haber espacio a la derecha ")
str_length(texto_ejemplo)
## [1] 45
texto_resultado <- str_trim(string = texto_ejemplo,
side = "right")
str_length(texto_resultado)
## [1] 41
12 / 14

Detección de patrones

Funciones que detectan coincidencia de patrones:

13 / 14

Detección de patrones

Funciones que detectan coincidencia de patrones:

Ejemplo:

Me quiero quedar con todos los inmuebles que se encuentran sobre avenidas

b_inm_avenidas <- datos %>%
filter(str_detect(string = calle,
pattern = "Av"))
head(b_inm_avenidas$calle)
## [1] "Avenida Rivadavia" "Avenida de Mayo" "Avenida Paseo Colon"
## [4] "Avenida Rivadavia" "Avda. del Libertador" "Av. Rivadavia"
13 / 14

Detección de patrones

Funciones que detectan coincidencia de patrones:

Ejemplo:

Me quiero quedar con todos los inmuebles que se encuentran sobre avenidas

b_inm_avenidas <- datos %>%
filter(str_detect(string = calle,
pattern = "Av"))
head(b_inm_avenidas$calle)
## [1] "Avenida Rivadavia" "Avenida de Mayo" "Avenida Paseo Colon"
## [4] "Avenida Rivadavia" "Avda. del Libertador" "Av. Rivadavia"

Ver uso de expresiones regulares -regex : str_detect(string = x, pattern = ":digits:")

13 / 14

Detección de patrones

Funciones que detectan coincidencia de patrones:

Ejemplo:

Me quiero quedar con todos los inmuebles que se encuentran sobre avenidas

b_inm_avenidas <- datos %>%
filter(str_detect(string = calle,
pattern = "Av"))
head(b_inm_avenidas$calle)
## [1] "Avenida Rivadavia" "Avenida de Mayo" "Avenida Paseo Colon"
## [4] "Avenida Rivadavia" "Avda. del Libertador" "Av. Rivadavia"

Ver uso de expresiones regulares -regex : str_detect(string = x, pattern = ":digits:")

{stringr}

13 / 14

Domar los datos II

Variables categóricas

Los factores son útiles cuando se tiene datos categóricos, variables que tienen un conjunto de valores fijo y conocido, y cuando se desea mostrar los vectores de caracteres en un orden específico R4DS - https://es.r4ds.hadley.nz/factores.html

14 / 14

Domar los datos II

Variables categóricas

Los factores son útiles cuando se tiene datos categóricos, variables que tienen un conjunto de valores fijo y conocido, y cuando se desea mostrar los vectores de caracteres en un orden específico R4DS - https://es.r4ds.hadley.nz/factores.html

factor(x = variable a transformar a factor,
levels = niveles de la variable,
labels = etiquetas de los niveles)
14 / 14

Domar los datos II

Variables categóricas

Los factores son útiles cuando se tiene datos categóricos, variables que tienen un conjunto de valores fijo y conocido, y cuando se desea mostrar los vectores de caracteres en un orden específico R4DS - https://es.r4ds.hadley.nz/factores.html

factor(x = variable a transformar a factor,
levels = niveles de la variable,
labels = etiquetas de los niveles)
  • fct_reorder() > modifica el orden
14 / 14

Domar los datos II

Variables categóricas

Los factores son útiles cuando se tiene datos categóricos, variables que tienen un conjunto de valores fijo y conocido, y cuando se desea mostrar los vectores de caracteres en un orden específico R4DS - https://es.r4ds.hadley.nz/factores.html

factor(x = variable a transformar a factor,
levels = niveles de la variable,
labels = etiquetas de los niveles)
  • fct_reorder() > modifica el orden

  • fct_recode() > modifica valores (no niveles)

14 / 14

Domar los datos II

Variables categóricas

Los factores son útiles cuando se tiene datos categóricos, variables que tienen un conjunto de valores fijo y conocido, y cuando se desea mostrar los vectores de caracteres en un orden específico R4DS - https://es.r4ds.hadley.nz/factores.html

factor(x = variable a transformar a factor,
levels = niveles de la variable,
labels = etiquetas de los niveles)
  • fct_reorder() > modifica el orden

  • fct_recode() > modifica valores (no niveles)

  • fct_collapse()> colapsar es útil para re codificar muchos niveles

14 / 14

Domar los datos II

Variables categóricas

Los factores son útiles cuando se tiene datos categóricos, variables que tienen un conjunto de valores fijo y conocido, y cuando se desea mostrar los vectores de caracteres en un orden específico R4DS - https://es.r4ds.hadley.nz/factores.html

factor(x = variable a transformar a factor,
levels = niveles de la variable,
labels = etiquetas de los niveles)
  • fct_reorder() > modifica el orden

  • fct_recode() > modifica valores (no niveles)

  • fct_collapse()> colapsar es útil para re codificar muchos niveles

  • fct_lump() > agrupa
14 / 14
2 / 14
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
oTile View: Overview of Slides
sToggle scribble toolbox
Esc Back to slideshow