按值对R中的键值列表进行排序

Sorting a key,value list in R by value

给定一个动物列表,将其命名为 m,其中包含

$bob
[1] 3

$ryan
[1] 4

$dan
[1] 1

如何按数值对这个人进行排序? 基本上我希望看​​到我的代码是这样的

m=sort(m,sortbynumber)


$ryan
[1] 4

$bob
[1] 3

$dan
[1] 1

不幸的是,我无法解决这个问题。似乎是一个简单的解决方案。

你可以试试order

m[order(-unlist(m))]
#$ryan
#[1] 4

#$bob
#[1] 3

#$dan
#[1] 1

或者稍微更有效的选择是使用 orderdecreasing=TRUE 参数(来自@nicola 的评论)

m[order(unlist(m), decreasing=TRUE)]

这里是优化的方案

library(hashmap)

a1<-hashmap("hello",1)
a1$insert("hello1",4)
a1$insert("hello2",2)
a1$insert("hello3",3)


sort(a1$data(),decreasing = TRUE)

#输出

hello1 hello3 hello2  hello 
   4      3      2      1