获得R中向量最小等级的有效方法?

时间:2015-03-20 11:25:08

标签: r optimization vector minimum rank

R中是否有一种有效的方法来获得向量(列表)的最小值(最大值)?

我会使用min函数找到最小值

p = min(x)

然后使用for循环在 x 中搜索 p 的等级...

更好地利用R功能?

2 个答案:

答案 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