r - 计算较大向量的子向量的最大值

标签 r vector apply

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

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

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

最佳答案

这应该可以完成工作

cummax(test.vec)

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

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

关于r - 计算较大向量的子向量的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24885964/

相关文章:

r - 如何避免 R 中的循环?

r - 合并后是否有可用的 _merge 指示器?

r - 直接动态添加框到 Shiny Dashboard

C++: vector "corrupting"的第一个元素

c++ - 用 t 个随机数生成位 vector

r - 在(反)对角线上应用函数

r - 使用 csv 和 quantmod 加载多个符号

r - 使用二进制值时 R 中的直方图

当索引和值之间的差异满足 r 中的条件时,返回向量的索引

python - 使用 spacy 对 Pandas Dataframe 中的一列已解析的 html 文本进行词形还原