dplyr - in R, how do you create a named list from a grouped dataframe? -


this question has answer here:

several times, i've hit need converting 2 columns of grouped dataframe list grouping column becomes name of list , values of non-grouped column become elements.

for example, given starwars dataset, want list characters homeworld.

library(tidyverse)  starwars %>%   select(homeworld, name) %>%   group_by(homeworld)  #> # 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 #> # ... 77 more rows 

how can convert list homeworld names? is, output above, we'd get:

#> $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" 

credit @thelatemail, use split:

split(df$name,df$homeworld) 

output:

$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"  

sample data:

require(data.table) df <- fread("homeworld,               name               tatooine,     luke skywalker               tatooine,              c-3po                  naboo,              r2-d2               tatooine,        darth vader               alderaan,        leia organa               tatooine,          owen lars               tatooine, beru whitesun lars               tatooine,              r5-d4               tatooine,  biggs darklighter                stewjon,     obi-wan kenobi") 

Comments

Popular posts from this blog

Sort a complex associative array in PHP -

vb.net - How to ignore if a cell is empty nothing -

recursion - Can every recursive algorithm be improved with dynamic programming? -