假设数据是;
data<-structure(list(`4` = 9, `3` = 7, `1` = 5, `2` = 4, `5` = 2), .Names = c("4",
"3", "1", "2", "5"))看上去就像;
$`4`
[1] 9
$`3`
[1] 7
$`1`
[1] 5
$`2`
[1] 4
$`5`
[1] 2但我想这样按最低到最高的顺序排序;
out<-structure(list(`1` = 5, `2` = 4, `3` = 7, `4` = 9, `5` = 2), .Names = c("1",
"2", "3", "4", "5"))发布于 2020-02-25 14:33:13
这里有一条单线:
setNames(lapply(sort(names(data)), FUN = function(n) data[[n]]), sort(names(data)))
# $`1`
# [1] 5
#
# $`2`
# [1] 4
#
# $`3`
# [1] 7
#
# $`4`
# [1] 9
#
# $`5`
# [1] 2发布于 2020-02-25 14:33:40
您可以按名称排序,然后按排序列表调用列表:
data <- structure(list(`4` = 9, `3` = 7, `322` = 6, `1` = 5, `2` = 4, `5` = 2, `10` = 7),
.Names = c("4", "3", "322", "1", "2", "5", "10"))
data <- data[order(as.numeric(names(data)))]
data
#$`1`
#[1] 5
#
#$`2`
#[1] 4
#
#$`3`
#[1] 7
#
#$`4`
#[1] 9
#
#$`5`
#[1] 2
#
#$`10`
#[1] 7
#
#$`322`
#[1] 6发布于 2020-02-25 14:33:54
下面是两条直线:创建希望作为向量的排序,并重新分配已排序的数据
sorting <- sort(as.numeric(names(data)))
data <- data[as.character(sorting)]https://stackoverflow.com/questions/60396930
复制相似问题