如何使用purrr(或tidyverse中的其他软件包)按名称的字母顺序对列表进行排序?
基本上,我正在寻找以下项目:
lst <- list(b = letters, c = 1:100, a = runif(10))
lst <- lst[order(names(lst))]
谢谢!
答案 0 :(得分:1)
这里有一些冗长的解决方案:
library(tidyverse)
library(magrittr)
lst %>%
tibble(
lst = .,
nm = names(.)
) %>%
arrange(nm) %$%
set_names(lst, nm)
答案 1 :(得分:1)
您可以将基本功能与magrittr一起使用:
library(magrittr)
lst %>%
.[order(names(.))]
答案 2 :(得分:0)
非常冗长,但却迫使您至少使用一个tidyverse
函数:
tmp <- names(lst)
purrr::map(tmp, ~ {f <- sort(tmp, partial = 1)[1]; tmp <<- setdiff(tmp, f); lst[[f]]})