R中是否有一种有效的方法来获得向量(列表)的最小值(最大值)?
我会使用min函数找到最小值
p = min(x)
然后使用for循环在 x 中搜索 p 的等级...
更好地利用R功能?
答案 0 :(得分:1)
您是否在向量中寻找最小值的索引?
有一个函数,which.min
,例如
which.min(c(15, 1, 5))
# 2
答案 1 :(得分:0)
函数order
为您提供了如果要订购矢量需要放置矢量的顺序。
所以,如果x
是你的向量,那么
order(x)[1]
为您提供min
和
的索引
order(x)[length(x)]
(或order(x, decreasing=T)[1]
)为您提供max
的索引。
示例强>
set.seed(123)
x <- rnorm(10)
x
# [1] -0.56047565 -0.23017749 1.55870831 0.07050839 0.12928774 1.71506499 0.46091621 -1.26506123 -0.68685285
#[10] -0.44566197
# Now, compute the vector of ordered indices with order
ord_x <- order(x)
# get the index of the min
ord_x[1]
#[1] 8
# get the index of the max
ord_x[length(ord_x)]
#[1] 6
# you can check that you have the right indices:
x[8]==min(x)
#[1] TRUE
x[6]==max(x)
#[1] TRUE