←
PDF 438 / 520 From Vectorized Functions
→
English · PDF 438
Original PDF page 438
中文 · PDF 438

#> 4 安哥拉 非洲 <tibble [12 × 4]> #> 5 阿根廷 美洲 <tibble [12 × 4]> #> 6 澳大利亚 大洋洲 <tibble [12 × 4]> #> # ... 还有 136 行

你也可以在未分组的数据框上使用它,指定想要嵌套的列:

gapminder %>% nest(year:gdpPercap) #> # 一个 tibble:142 × 3 #> 国家 大洲 数据 #> #> 1 阿富汗 亚洲 <tibble [12 × 4]> #> 2 阿尔巴尼亚 欧洲 <tibble [12 × 4]> #> 3 阿尔及利亚 非洲 <tibble [12 × 4]> #> 4 安哥拉 非洲 <tibble [12 × 4]> #> 5 阿根廷 美洲 <tibble [12 × 4]> #> 6 澳大利亚 大洋洲 <tibble [12 × 4]> #> # ... 还有 136 行

来自向量化函数

一些有用的函数接受一个原子向量并返回一个列表。例如,在第 11 章中你学过 stringr::str_split(),它接受一个字符向量并返回一个字符向量的列表。如果你在 mutate 中使用它,就会得到一个列表列:

df <- tribble( ~x1, "a,b,c", "d,e,f,g" ) df %>% mutate(x2 = stringr::str_split(x1, ",")) #> # 一个 tibble:2 × 2 #> x1 x2 #> #> 1 a,b,c <chr [3]> #> 2 d,e,f,g <chr [4]>

unnest() 知道如何处理这些向量列表:

df %>% mutate(x2 = stringr::str_split(x1, ",")) %>% unnest() #> # 一个 tibble:7 × 2 #> x1 x2 #> #> 1 a,b,c a