我有以下列表:
MYLIST
[[1]]
[1] 11
[[2]]
[1] 9
[[3]]
[1]
10
我想对它进行排序。 我试过了
sort(mylist)
错误:mylist必须是原子的
sort.list(mylist)
sort.list(mylist)出错:'x'必须是'sort.list'的原子 你有没有在名单上打电话给'排序'?
order(mylist)
顺序错误(mylist):'orderVector1'中未实现的类型'list'
答案 0 :(得分:3)
我们需要order
vector
。在这里,假设list
每个元素的长度仅为1,unlist
上的order
' mylist',vector
然后使用
mylist[order(unlist(mylist))]
#[[1]]
#[1] 9
#[[2]]
#[1] 10
#[[3]]
#[1] 11
答案 1 :(得分:2)
purrr
包可能对此任务有点过分,但如果您正在寻找一个用于处理列表的工具包,那么值得探讨:
library(purrr)
mylist %>% sort_by(sort)
答案 2 :(得分:1)
您的列表每个条目只包含一个值。因此,您还可以先使用do.call(c,...)
将其转换为矢量,然后对矢量进行排序:
sort(do.call(c,mylist))
#[1] 3 10 20