如何用包含列表列表的列扩展 dplyr::tibble?

how to expand the dplyr::tibble with the column contain list of list?

这是我拥有的和我想要的:

what_i_have <- dplyr::tibble(
    col_str = "abc",
    col_int = 1,
    col_ls = list(list(
        c(l1 = "1", l2 = "3", l3 = "5"),
        c(l1 = "2", l2 = "4", l3 = "6")
    ))
)

what_i_want <- dplyr::tibble(
    col_str = "abc",
    col_int = 1,
    col_ls = list(
        c(l1 = "1", l2 = "3", l3 = "5"),
        c(l1 = "2", l2 = "4", l3 = "6")
    )
)

what_i_have 看起来像这样

r$> what_i_have                                             
# A tibble: 1 × 3
  col_str col_int col_ls    
  <chr>     <dbl> <list>    
1 abc           1 <list [2]>

what_i_want 看起来像这样

r$> what_i_want                                             
# A tibble: 2 × 3
  col_str col_int col_ls   
  <chr>     <dbl> <list>   
1 abc           1 <chr [3]>
2 abc           1 <chr [3]>

如何把what_i_have变成what_i_want?谢谢。

我们可以使用 tidyr 包中的 unnest

library(tidyr)
library(dplyr)

what_i_have %>% 
  unnest(cols = c(col_ls))
  col_str col_int col_ls   
  <chr>     <dbl> <list>   
1 abc           1 <chr [3]>
2 abc           1 <chr [3]>