gpt4 book ai didi

r - 有没有办法在R函数which.max()中的联系之间进行随机抽样?

转载 作者:行者123 更新时间:2023-12-04 04:54:39 25 4
gpt4 key购买 nike

我目前正在循环中的which.max()中使用R函数。有时,我有一个包含相同元素的向量,例如:

vec <- c(0,0,2,0,2)

然后,该函数将始终返回:
> which.max(vec)
[1] 3

我想知道是否有一个简单的解决方案来随机断开关系,以使它并不总是在关系中选择最小的索引。我知道 which.is.max中有一个 nnet函数,但我希望看看是否有另一个简单的解决方案,而不必求助于安装额外的软件包。谢谢。

最佳答案

which(vec == max(vec))将匹配所有关系。然后,您可以使用sample(which(vec == max(vec)), 1)随机选择一个。

正如您在评论中提到的那样,当提供的向量的长度为1时,sample会令人讨厌。因此,当最大值只有一个时。

您可以按以下方式解决此问题:

maxima <- which(vec == max(vec))
if(length(maxima) > 1){
maxima <- sample(maxima, 1)
}

关于r - 有没有办法在R函数which.max()中的联系之间进行随机抽样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49570565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com