如何用包含列表列表的列扩展 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]>
这是我拥有的和我想要的:
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]>