如何按R中的值和键对列表进行排序?

YOL*_*OLO 1 r dataframe

我试图在R中转换一段python代码,但我不知道如何实现它.

在python中我们可以做到:

## dictionary
a_list = {'red':23, 'black':12,'white':4,'orange':79}

## sort by key
dict(sorted(a_list.items()))
{'black': 12, 'orange': 79, 'red': 23, 'white': 4}

## sort by values
sorted(a_list.items(), key=lambda x: x[1])
[('white', 4), ('black', 12), ('red', 23), ('orange', 79)]
Run Code Online (Sandbox Code Playgroud)

对于这个问题,我有一个:

a_list <- list(red=23, black=12, white = 4, orange=79)
Run Code Online (Sandbox Code Playgroud)

我想以两种方式对此列表进行排序,例如输出为:

输出1(按键排序): list(black=12, orange=79, red=23, white = 4)

输出2(按值排序): list(white = 4,black=12, red=23,orange=79)

我怎样才能做到这一点 ?

akr*_*run 5

一种选择是order对的names"的a_list"对于第一种情况

a_list[order(names(a_list))]
#$black
#[1] 12

#$orange
#[1] 79

#$red
#[1] 23

#$white
#[1] 4
Run Code Online (Sandbox Code Playgroud)

第二,因为list元素是length1,unlist并且order在那上面

a_list[order(unlist(a_list))]
#$white
#[1] 4

#$black
#[1] 12

#$red
#[1] 23

#$orange
#[1] 79
Run Code Online (Sandbox Code Playgroud)