【问题标题】:Calculating the maximum of sub-vectors of a larger vector计算较大向量的子向量的最大值
【发布时间】:2014-09-13 04:33:44
【问题描述】:

我想在较长的向量的一部分中找到最大的元素。我还想对这个较大向量的多个“片段”执行此计算。以下代码产生了我正在寻找的结果,但使用循环似乎效率低下。建议?

注意:我并不特别局限于使用向量数据结构来解决这个问题。

test.vec = as.vector(c(1,2,4,3,2,3,4,5,4,3,4,5))
output.vec = vector(mode = 'numeric', length = length(test.vec))
for(i in 1:length(test.vec)){
output.vec[i] = max(test.vec[1:i])
}
output.vec = 1, 2, 4, 4, 4, 4, 4, 5, 5 ,5 ,5 ,5  #Result of the loop

【问题讨论】:

    标签: r vector apply


    【解决方案1】:

    这应该可以完成工作

    cummax(test.vec)
    

    除了 sum、min、max、prod 内置了更有效的例程之外,一般策略可能是

    Reduce(max, test.vec, accumulate = TRUE)
    

    【讨论】:

      【解决方案2】:

      您可能对cummax 函数感兴趣。

      【讨论】:

        猜你喜欢
        • 2014-12-03
        • 1970-01-01
        • 2021-10-08
        • 1970-01-01
        • 2015-10-11
        • 2020-01-29
        • 1970-01-01
        • 1970-01-01
        • 2021-02-21
        相关资源
        最近更新 更多