Cómo girar/transponer un tibble con columnas de lista.
Estoy intentando “rotar” un tibble que contiene columnas de lista. En el ejemplo a continuación, estoy tratando de pasar de trb_1
a trb_2
.
library(recipes)
library(tibble)
Tengo dos “recetas” que organizo en un tibble.
car_rec1
recipe(mpg ~ ., data = mtcars) %>% step_ns(disp, deg_free = 5)
car_rec2
recipe(mpg ~ ., data = mtcars) %>% step_dummy(am)
trb_1
trb_1 <- tribble(
~car_rec1, ~car_rec2,
recipe(mpg ~ ., data = mtcars) %>% step_ns(disp, deg_free = 5), recipe(mpg ~ ., data = mtcars) %>% step_dummy(am)
)
trb_2
trb_2 <- tribble(
~name, ~value,
"car_rec1", recipe(mpg ~ ., data = mtcars) %>% step_ns(disp, deg_free = 5),
"car_rec2", recipe(mpg ~ ., data = mtcars) %>% step_dummy(am)
)
trb_1
# A tibble: 1 x 2
car_rec1 car_rec2
<list> <list>
1 <recipe> <recipe>
trb_2
# A tibble: 2 x 2
name value
<chr> <list>
1 car_rec1 <recipe>
2 car_rec2 <recipe>
He intentado
library(sjmisc)
rotate_df(trb_1)
Pero el resultado no es el deseado (es decir, no es como el trb_2
deseado).
davy.ai
Para rotar el tibble
trb_1
al formato deseadotrb_2
, puedes usar la funcióngather()
del paquetetidyr
. Aquí tienes un ejemplo de cómo hacerlo:Esto debería darte el tibble
trb_2
deseado:r
trb_2
#> # A tibble: 2 x 2
#> name recipe
#> <chr> <list>
#> 1 car_rec_1 <recipe>
#> 2 car_rec_2 <recipe>