You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言order()函数返回向量排序索引结果不正确如何解决

原因说明

R语言的order()函数默认按升序规则返回元素索引,你当前得到的输出是从小到大排列的元素索引,所以最大值对应的索引1排在结果末尾,和你期望的从大到小排序的需求相反。

解决方法

有两种常用方案可以得到符合要求的降序排序索引:

  • 方法1:给order()添加decreasing = TRUE参数,明确指定按降序排列

    myvec <- c(2821774,  435266,  101643,   38311,  280264,  716010,  546901,   16732 ,  87282,  
    329322, 156031, 1018510,   77215)
    order(myvec, decreasing = TRUE)
    

    运行输出为:
    [1] 1 12 6 7 2 10 5 11 3 9 13 4 8
    首位就是最大值对应的索引1,完全符合需求。

  • 方法2:对默认升序的order()结果调用rev()翻转顺序

    rev(order(myvec))
    

    运行结果和方法1完全一致。

两种方案都可以正常使用,推荐优先使用方法1,参数语义更明确,代码可读性更高。

内容的提问来源于stack exchange,提问作者Mathica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:06:06