R 如何找到唯一的最大值
我在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
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)