【问题标题】:how to expand the dplyr::tibble with the column contain list of list?如何使用包含列表列表的列扩展 dplyr::tibble?
【发布时间】:2022-01-21 01:24:26
【问题描述】:

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

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?谢谢。

【问题讨论】:

    标签: r dplyr tibble


    【解决方案1】:

    我们可以使用来自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]>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      相关资源
      最近更新 更多