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

R语言which.min()函数如何返回多个最小值索引

获取向量中全部最小值对应索引的实现方法

which.min()是R的内置定位函数,其固定逻辑为仅返回向量中首次出现的最小值的位置索引,不支持通过参数调整为返回所有匹配项。

你可以通过基础逻辑组合实现需求,核心思路是先提取向量的最小值,再匹配所有等于该值的元素位置:

  • 用min()计算目标向量的最小值
  • 用which()定位所有等于该最小值的元素索引

代码示例

针对你给出的测试向量:

tmp <- c(1,2,1)
which(tmp == min(tmp))
# 控制台输出:[1] 1 3

特殊场景处理

如果向量中包含缺失值NA,需要在min()中添加na.rm = TRUE参数,避免计算结果被NA干扰:

# 带NA的测试向量
tmp_with_na <- c(1, NA, 2, 1)
which(tmp_with_na == min(tmp_with_na, na.rm = TRUE))
# 控制台输出:[1] 1 4

易错提示

直接运行tmp == min(tmp)仅会返回和原向量等长的逻辑向量,用于标记哪些位置的元素匹配最小值,不会直接输出索引值,必须嵌套which()函数完成索引转换。


内容的提问来源于stack exchange,提问作者M.C. Park

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 11:15:00