Сортировать список в алфавитном порядке по имени, используя purrr / tidyverse - PullRequest
0 голосов
/ 29 января 2019

Как отсортировать список в алфавитном порядке по имени, используя purrr (или какой-либо другой пакет в тидиверсе)?

В основном я ищу эквивалент:

lst <- list(b = letters, c = 1:100, a = runif(10))
lst <- lst[order(names(lst))]

Спасибо!

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Ужасно многословно, но заставляет вас использовать хотя бы одну tidyverse функцию:

tmp <- names(lst)
purrr::map(tmp, ~ {f <- sort(tmp, partial = 1)[1]; tmp <<- setdiff(tmp, f); lst[[f]]})
0 голосов
/ 29 января 2019

Вот небольшое подробное решение:

library(tidyverse)
library(magrittr)

lst %>%
  tibble(
    lst = .,
    nm = names(.)
  ) %>%
  arrange(nm) %$%
  set_names(lst, nm)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...