[1] 2
R-Ladies Chile
saryace | Saryace | saryace.github.io
En esta taller:
Las presentaciones contienen código real (se puede copiar y pegar directamente). El repositorio contendrá el material y contenido de cada clase
El repositorio lo puedes encontrar acá:
tidyr::
tidyr::
Más info en R4DS tidy data
Las funciones de tidyr se dividen en cinco categorías principales:
Una nueva familia de funciones separate_*() sustituye a separate() y extract() e incorpora útiles funciones de debug
unnest_wider() y unnest_longer() son mejorados
pivot_longer() obtiene un nuevo argumento cols_vary.
nest(.by) proporciona una nueva (y esperemos que definitiva) forma de crear conjuntos de datos anidados.
Crea columnas | Crea filas | |
---|---|---|
Separa por delim | separate_wider_delim() | separate_longer_delim() |
Separa por posición | separate_wider_position() | separate_longer_position() |
Separa por regex | separate_wider_regex() |
info_mascota <- tribble(
~mascota, ~estado, ~info,
"gato", "sano",list(nombre = "isi", edad = 2, vacunas = c("a")),
"gato", "enfermo", list(nombre = "oso", edad = 10, vacunas = c("a","b")),
"perro","sano",list(nombre = "cuchi", edad = 6, vacunas = c("c"))
)
info_mascota
# A tibble: 3 × 3
mascota estado info
<chr> <chr> <list>
1 gato sano <named list [3]>
2 gato enfermo <named list [3]>
3 perro sano <named list [3]>
# A tibble: 9 × 4
mascota estado info info_id
<chr> <chr> <named list> <chr>
1 gato sano <chr [1]> nombre
2 gato sano <dbl [1]> edad
3 gato sano <chr [1]> vacunas
4 gato enfermo <chr [1]> nombre
5 gato enfermo <dbl [1]> edad
6 gato enfermo <chr [2]> vacunas
7 perro sano <chr [1]> nombre
8 perro sano <dbl [1]> edad
9 perro sano <chr [1]> vacunas
mis_gatos <- tibble(nombre = c("cuchito", "minino",
"bigotito"),
color = c("negro", "blanco",
"atigrado"),
"personalidad" = c("arisco","amoroso", "amoroso"))
mis_gatos
# A tibble: 3 × 3
nombre color personalidad
<chr> <chr> <chr>
1 cuchito negro arisco
2 minino blanco amoroso
3 bigotito atigrado amoroso
mis_gatos %>%
pivot_longer(everything(),
names_to = "caracteristicas_gato",
values_to = "caracteristica")
# A tibble: 9 × 2
caracteristicas_gato caracteristica
<chr> <chr>
1 nombre cuchito
2 color negro
3 personalidad arisco
4 nombre minino
5 color blanco
6 personalidad amoroso
7 nombre bigotito
8 color atigrado
9 personalidad amoroso
mis_gatos %>%
pivot_longer(everything(),
names_to = "caracteristicas_gato",
values_to = "caracteristica",
cols_vary = "slowest")
# A tibble: 9 × 2
caracteristicas_gato caracteristica
<chr> <chr>
1 nombre cuchito
2 nombre minino
3 nombre bigotito
4 color negro
5 color blanco
6 color atigrado
7 personalidad arisco
8 personalidad amoroso
9 personalidad amoroso
# A tibble: 3 × 3
mascota estado info
<chr> <chr> <list>
1 gato sano <named list [3]>
2 gato enfermo <named list [3]>
3 perro sano <named list [3]>
# A tibble: 2 × 2
# Groups: mascota [2]
mascota data
<chr> <list>
1 gato <tibble [2 × 2]>
2 perro <tibble [1 × 2]>