按值对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
或者稍微更有效的选择是使用 order
的 decreasing=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
给定一个动物列表,将其命名为 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
或者稍微更有效的选择是使用 order
的 decreasing=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