English · PDF 444
#> 1 1 1 #> 2 1 2 #> 3 1 3 #> 4 1 4 #> 5 2 1
这意味着你不能同时对包含不同数量元素的两列进行去嵌套:
# 可以,因为 y 和 z 在 # 每一行中拥有相同数量的元素 df1 <- tribble(
~x, ~y, ~z, 1, c("a", "b"), 1:2, 2, "c", 3
)
df1
#> # 一个 tibble:2 × 3
#> x y z
#>
#> 1 1 <chr [2]> <int [2]>
#> 2 2 <chr [1]> <dbl [1]>
df1 %>% unnest(y, z)
#> # 一个 tibble:3 × 3
#> x y z
#>
#> 1 1 a 1
#> 2 1 b 2
#> 3 2 c 3
# 不行,因为 y 和 z 拥有不同数量的元素 df2 <- tribble(
~x, ~y, ~z, 1, "a", 1:2, 2, c("b", "c"), 3
)
df2
#> # 一个 tibble:2 × 3
#> x y z
#>
#> 1 1 <chr [1]> <int [2]>
#> 2 2 <chr [2]> <dbl [1]>
df2 %>% unnest(y, z)
#> 错误:所有嵌套的列必须具有
#> 相同数量的元素。
同样的原则也适用于对数据框的列表列进行去嵌套的情况。只要每一行中的所有数据框拥有相同的行数,你就可以对多个列表列进行去嵌套。