从R中的向量生成第n个最大数

时间:2014-08-29 00:02:09

标签: r

我需要让用户输入0到1之间的数字(第n个数字)。在向量中返回第n个最大数字。因此,当n = 1时,它充当输出最大数字的向量的最大值。我是r的新编码。任何有关改进我的代码的帮助都会感激不尽,更不用说让它工作了。

KFUN <- function() {
bob <- c(1,2,3,6)
ANSWER <- readline("Enter k value:")
k <- ANSWER
if(k <= 1 && k >= 0) {
  if(0 < k <= .25) {
   bob[c(4)]
  }
  if(.25 < k && k <= .5) {
   bob[c(3)]
  }
  if(.5 < k && k <= .75) {
   bob[c(2)]
  }
  if(.75 < k && k <=1) {
   bob[c(1)]
  }
}
else {
stop("That is not within 0 to 1!")
  }
}
KFUN()

最佳

1 个答案:

答案 0 :(得分:0)

尝试'订单'功能:

nth_largest= function(vect, n){
    vect[rev(order(vect))][n]
}

bob <- c(3,6,1,2)    

nth_largest(bob, 1)
[1] 6
nth_largest(bob, 2)
[1] 3
nth_largest(bob, 3)
[1] 2
nth_largest(bob, 4)
[1] 1