Как отсортировать список в алфавитном порядке по имени, используя purrr (или какой-либо другой пакет в тидиверсе)?
В основном я ищу эквивалент:
lst <- list(b = letters, c = 1:100, a = runif(10)) lst <- lst[order(names(lst))]
Спасибо!
Ужасно многословно, но заставляет вас использовать хотя бы одну tidyverse функцию:
tidyverse
tmp <- names(lst) purrr::map(tmp, ~ {f <- sort(tmp, partial = 1)[1]; tmp <<- setdiff(tmp, f); lst[[f]]})
Вот небольшое подробное решение:
library(tidyverse) library(magrittr) lst %>% tibble( lst = ., nm = names(.) ) %>% arrange(nm) %$% set_names(lst, nm)