gpt4 book ai didi

用于确定最大值峰值的 R 代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:25:29 26 4
gpt4 key购买 nike

给定输入向量 x,让 x 的最大值出现在输入向量中的索引 i 处。我正在尝试量化这个最大值的峰值,并且我已经考虑过确定以下数量。我有兴趣确定数字 lr 这样:

x[i-l] < x[i-l+1] < ... < x[i-1] < x[i] but x[i-l-1] >= x[i-l]

类似地:

x[i+r] < x[i+r-1] < ... < x[i+1] < x[i] but x[i+r+1] >= x[i+r]

在 R 中执行此操作的有效方法是什么?另外,我如何在 R 中对此进行概括,以便如果输入是矩阵 M,则上述过程独立应用于 M 的每一列?

最佳答案

您应该使用 bool 向量的 rlecumsum。以下函数查找 l :

left.peak <- function(x) {
gt = (x[-1] > x[-length(x)])
gt.rle = rle(gt)
sum.rle = cumsum(gt.rle$len * gt.rle$val)
sum.rle = c(0, sum.rle[-length(sum.rle)])
c(0, cumsum(gt) - rep(sum.rle, gt.rle$len))
}

找到r,反转x,调用left.peak,然后再次反转x

关于用于确定最大值峰值的 R 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26499992/

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