我想找到较长向量的一部分中的最大元素。我还想对这个较大的矢量的多个“片段”执行此计算。以下代码生成我正在寻找的结果,但使用循环似乎效率低下。建议?
注意:我并不特别限于使用矢量数据结构来解决此问题。
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
答案 0 :(得分:1)
这应该做的工作
cummax(test.vec)
除了sum,max,prod,内置更高效的例程,一般策略可能是
Reduce(max, test.vec, accumulate = TRUE)
答案 1 :(得分:0)
您可能对cummax
功能感兴趣。