[英]R unnest multiple columns
任何功能性方法可以取消嵌套不同大小的多個列?
例子:
library(tidyr)
library(dplyr)
my_list <- list(year = 2018:2020, period = 1, id = c(17,35))
expand_grid(my_list) %>%
pivot_wider(
names_from = my_list,
values_from = my_list
) %>%
rename_at(., names(.), ~ names(my_list))
# A tibble: 1 x 3
year period id
<named list> <named list> <named list>
1 <int [3]> <dbl [1]> <dbl [2]>
expand_grid(my_list) %>%
pivot_wider(
names_from = my_list,
values_from = my_list
) %>%
rename_at(., names(.), ~ names(my_list)) %>%
unnest(cols = names(my_list))
Erro: Incompatible lengths: 3, 2.
unnest 需要列名,是否可以使用字符串向量?
預期的:
# A tibble: 1 x 3
year period id
<int> <int> <int>
1 2018 1 17
2 2019 1 17
3 2020 1 17
4 2018 1 35
5 2019 1 35
6 2020 1 35
我們可以使用cross_df
中的purrr
:
purrr::cross_df(my_list)
# year period id
# <int> <dbl> <dbl>
#1 2018 1 17
#2 2019 1 17
#3 2020 1 17
#4 2018 1 35
#5 2019 1 35
#6 2020 1 35
或者在基礎 R 中使用expand.grid
和do.call
:
do.call(expand.grid, my_list)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.