【发布时间】:2018-02-19 05:42:58
【问题描述】:
有几次,我需要将分组数据框的两列转换为一个列表,其中分组列成为列表的名称,非分组列的值成为元素。
例如,给定starwars 数据集,假设我们想按他们的家乡列出角色。
library(tidyverse)
starwars %>%
select(homeworld, name) %>%
group_by(homeworld)
#> # A tibble: 87 x 2
#> # Groups: homeworld [49]
#> homeworld name
#> <chr> <chr>
#> 1 Tatooine Luke Skywalker
#> 2 Tatooine C-3PO
#> 3 Naboo R2-D2
#> 4 Tatooine Darth Vader
#> 5 Alderaan Leia Organa
#> 6 Tatooine Owen Lars
#> 7 Tatooine Beru Whitesun lars
#> 8 Tatooine R5-D4
#> 9 Tatooine Biggs Darklighter
#> 10 Stewjon Obi-Wan Kenobi
#> # ... with 77 more rows
如何将其转换为以homeworld 为名称的列表?也就是说,对于上面的输出,我们会得到:
#> $Alderaan
#> [1] "Leia Organa"
#>
#> $Naboo
#> [1] "R2-D2"
#>
#> $Stewjon
#> [1] "Obi-Wan Kenobi"
#>
#> $Tatooine
#> [1] "Luke Skywalker" "C-3PO" "Darth Vader"
#> [4] "Owen Lars" "Beru Whitesun lars" "R5-D4"
#> [7] "Biggs Darklighter"
【问题讨论】:
-
split(name,homeworld)在不整洁的世界中。我敢肯定有类似的东西。 -
split完美——谢谢!