gpt4 book ai didi

r - 如何按每个子列表的最大值对列表进行排序?

转载 作者:行者123 更新时间:2023-12-02 09:14:51 24 4
gpt4 key购买 nike

我有一个包含幂集的列表:

> str(ps10)
List of 1023
$ : int 1
$ : int 2
$ : int [1:2] 1 2
$ : int 3
$ : int [1:2] 1 3
$ : int [1:2] 2 3
$ : int [1:3] 1 2 3
...

如何根据内部列表上的某些统计数据(例如最小值、中位数等)对外部列表进行排序?该列表是使用 HapEstXXR::powerset() 按最大内部元素排序创建的。我想保留列表结构以供以后使用。

sortsort.listorder 不接受列表。在 SAS 中,我会将统计数据作为另一列添加到数据集中,并按 list.statistic、列表 id、列表元素调用 PROC SORT。我还没有弄清楚如何在 R 中有效地做到这一点,而不创建辅助向量来获得排序。

谢谢

最佳答案

如果L是一个定义为 L <- list(c(1,2), c(1,3), c(2,5), c(1,4)) 的列表,那么你可以使用:

L[order(-sapply(L, max))]

说明:

  • sapply(L, max)获取L中每一项的最大值
  • 将其放入 order带有减号的元素会给出从具有最高最大值的元素开始的(降序)元素顺序。
  • 将其放在方括号之间可重新排序 L按照通缉顺序。

关于r - 如何按每个子列表的最大值对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48118502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com