订购列表,命令不起作用

时间:2017-03-16 09:32:06

标签: r

我有以下列表:

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'

3 个答案:

答案 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