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

时间:2018-06-26 15:28:41

标签: 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)]

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

a_list <- list(red=23, black=12, white = 4, orange=79)

我想用两种方式对该列表进行排序,以使输出为:

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

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

我该怎么做?

1 个答案:

答案 0 :(得分:5)

第一种情况是'a_list'的order上的一个names选项

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

#$orange
#[1] 79

#$red
#[1] 23

#$white
#[1] 4

第二,由于list的元素分别为length 1,unlistorder

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

#$black
#[1] 12

#$red
#[1] 23

#$orange
#[1] 79