R提供最大值和最小值,但除了从整个向量中排序而不是从该向量中选取值x之外,我没有看到在序列中找到另一个值的快速方法。是否有更快的方法来获得第二高的值(例如)?谢谢
3 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
稍微慢一点的替代品,仅用于记录:
x <- c(12.45,34,4,0,-234,45.6,4)
max( x[x!=max(x)] )
min( x[x!=min(x)] )
HUH函数
TA贡献1836条经验 获得超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 关注
- 558 浏览
添加回答
举报
0/150
提交
取消