Это мой тиббл: my_tibble

3
Laura 20 Мар 2021 в 23:35

2 ответа

Лучший ответ

Мы могли бы использовать unlist2d с map

library(purrr)
library(collapse)
map_dfc(my_tibble, ~ unlist2d(.x) %>% 
        select(-1)) %>%
     set_names(paste0(rep(names(my_tibble), each = 2), "_", 1:2))

-вывод

#    Level_1 Level_2 Level2_1 Level2_2 Level3_1 Level3_2
#1      10      20       30       40      330      430
#2      10      20       50       20      530       33

Или переберите имена данных в map и примените unnest_wider

library(tidyr)
map_dfc(names(my_tibble), 
     ~ my_tibble %>% 
          select(.x) %>%
         unnest_wider(.x)) %>%
  set_names(paste0(rep(names(my_tibble), each = 2), "_", 1:2))

Согласно документации от ?unnest_wider

.col, col - Список-столбец, из которого нужно извлечь компоненты.

Итак, это всего лишь один столбец, который мы можем указать, где, как в ?unnest, это cols

cols - Столбцы, которые нужно разложить.

1
akrun 20 Мар 2021 в 21:04

Возможно, аналогично ответу выше с использованием карты, но с более простым именованием.

map_dfc(colnames(my_tibble), 
        ~ unnest_wider(my_tibble[.x], .x, names_sep = "."))
1
Ashley G 20 Мар 2021 в 21:25