【发布时间】:2017-09-14 13:57:40
【问题描述】:
我有类似这样的列表:
a <- list(
list(day = 5, text = "foo"),
list(text = "bar", day = 1),
list(text = "baz", day = 3),
list(day = 2, text = "quux")
)
具有未知数量的字段,并且这些字段可能是乱序的。
如何根据日期对列表进行排序?我需要对列表进行升序排序。我已经搜索过,但我只找到了如何对向量进行排序。是否可以对列表进行排序?
【问题讨论】:
-
a[order(sapply(a, function(x) x$day))] -
a[order(sapply(a, `[[`, i = "day"))] -
@UweBlock 我正在使用
sortBy <- function(a, field) a[order(sapply(a,[[, i = field))]并得到错误Error in order: unimplemented type 'list' in 'orderVector1'@d.b 解决方案也是如此 -
这个?
a[order(sapply(a, unlist)[1,])] -
这很奇怪
sortBy <- function(a, field) a[order(sapply(a, "[[", i = field))]; sortBy(a, "day")对我有用。