R 如何找到唯一的最大值

R 如何找到唯一的最大值,r,unique,R,Unique,我在r中有以下数据: dummyData = c(5,8, 9, 25, 30, 55, 55) dummyData sort(dummyData,TRUE) [1] 55 55 30 25 9 8 5 然后,我想在这个列表中找到唯一的最大值,即30。我曾想过使用“while”或“for loop”,但我不太确定如何使用。有人能帮我吗?只需过滤向量,除去重复值之外的任何重复值,然后取其最大值: max(dummyData[! (duplicated(dummyData) | dupl

我在r中有以下数据:

dummyData = c(5,8, 9, 25, 30, 55, 55)

dummyData

sort(dummyData,TRUE)
[1] 55 55 30 25  9  8  5

然后,我想在这个列表中找到唯一的最大值,即30。我曾想过使用“while”或“for loop”,但我不太确定如何使用。有人能帮我吗?

只需过滤向量,除去重复值之外的任何重复值,然后取其最大值:

max(dummyData[! (duplicated(dummyData) | duplicated(dummyData, fromLast = TRUE))])
[1] 30
或者,您可以利用
table()


只需过滤向量,除去重复值之外的任何重复值,然后取其最大值:

max(dummyData[! (duplicated(dummyData) | duplicated(dummyData, fromLast = TRUE))])
[1] 30
或者,您可以利用
table()


这感觉不必要的冗长,但它可以工作(如果有大的向量,我想应该避免
sort()
):


dummyData这感觉不必要的冗长,但它可以工作(如果有大向量,我想应该避免
sort()
):


dummyData重新格式化的代码段“唯一最大值”是什么意思?比如删除多次出现的数字后的最大值?是的,没错。在我的例子中,最大值将是50,但它是重复的。我想选择不重复的最大值。在我的示例中,它是30…重新格式化的代码段“唯一最大值”是什么意思?比如删除多次出现的数字后的最大值?是的,没错。在我的例子中,最大值将是50,但它是重复的。我想选择不重复的最大值。在我的例子中,它是30…非常感谢!。。我非常喜欢表函数方法。太滑了!非常感谢。非常感谢!。。我非常喜欢表函数方法。太滑了!非常感谢。
dummyData <- c(5, 8, 9, 25, 30, 55, 55)

findUniqueMax <- function(input_vec) {
  found <- FALSE
  ind <- 1
  input_vec <- sort(input_vec, decreasing = TRUE)

  while(!found) {
    if (ind > length(input_vec)) {
      val <- NULL
      found <- TRUE
    } else if (sum(input_vec[ind] == input_vec) > 1) {
      ind <- ind + 1
    } else {
      val <- input_vec[ind]
      found <- TRUE
    }
  }
  return(val)
}

findUniqueMax(dummyData)