我有一个看起来像矢量的列表:
[[1]]
[1] 2 1.0 3.0
[[2]]
[1] 3 3 3
[[3]]
[1] 1 3.0 1.0
我希望按每个矢量的第一个元素以降序排序,如下所示:
[[1]]
[1] 3 3 3
[[2]]
[1] 2 1.0 3.0
[[3]]
[1] 1 3.0 1.0
我正在寻找一个看起来像这样的解决方案(当然它不起作用):
list.sortby(function (x) x[1])
我假设您的示例不应导致将列表的第二个元素放入结果的第一个元素?如果这是正确的,则可以使用它lapply
来执行所需的操作:
L <- list(c(2,1,3), c(3,3,3), c(1,3,1))
L
lapply(L, sort)
如果要按列表中每个向量的第一个值排序,则可以通过以下方式完成:
L[order(sapply(L, function(x) x[1], simplify=TRUE), decreasing=TRUE)]
L
[[1]]
[1] 3 3 3
[[2]]
[1] 2 1 3
[[3]]
[1] 1 3 1
从您的示例来看,您似乎希望递减顺序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句