R提供最大值和最小值,但除了從整個向量中排序而不是從該向量中選取值x之外,我沒有看到在序列中找到另一個值的快速方法。是否有更快的方法來獲得第二高的值(例如)?謝謝
3 回答

交互式愛情
TA貢獻1712條經(jīng)驗 獲得超3個贊
稍微慢一點的替代品,僅用于記錄:
x <- c(12.45,34,4,0,-234,45.6,4)
max( x[x!=max(x)] )
min( x[x!=min(x)] )

HUH函數(shù)
TA貢獻1836條經(jīng)驗 獲得超4個贊
我將Rob的答案包含在稍微更通用的功能中,可用于查找第2,第3,第4(等)max:
maxN <- function(x, N=2){
len <- length(x)
if(N>len){
warning('N greater than length(x). Setting N=length(x)')
N <- length(x)
}
sort(x,partial=len-N+1)[len-N+1]
}
maxN(1:10)
- 3 回答
- 0 關(guān)注
- 592 瀏覽
添加回答
舉報
0/150
提交
取消