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

如何在R语言中从向量中选取多个最大值或最小值?

在R语言中获取向量的前N个最大值

你可以通过以下几种方式获取向量中指定数量的最大数值,替代只能返回单个最大值的max()函数:

方法1:使用sort()函数

先对向量进行降序排序,再提取前N个元素:

vector <- c(100,215,200,180,300,500,130)
# 降序排序后取前3个最大值
sort(vector, decreasing = TRUE)[1:3]

运行后会返回500 300 215,正好符合你的需求。

方法2:使用order()函数

通过order()获取元素的降序索引,再从原向量中提取对应位置的元素:

vector[order(vector, decreasing = TRUE)[1:3]]

这种方法和方法1结果一致,如果你需要保留原向量中元素的位置信息,这种方式会更灵活。

方法3:使用dplyr包的top_n()函数

如果你日常使用tidyverse工具链,可以用dplyr的top_n()快速提取:

# 先安装并加载dplyr包(首次使用需安装)
# install.packages("dplyr")
library(dplyr)

vector %>% top_n(3) %>% pull()

top_n()默认会选取最大的n个元素,pull()则会把结果转为向量格式。

补充:为什么pmax()没用?

pmax()的作用是按位置对比多个向量,返回每个位置上的最大值(比如pmax(vector, 3)会把向量里每个元素和3比较,取较大的那个),和你要提取前N个最大值的需求完全不匹配,所以达不到预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:55:25