【发布时间】:2020-11-21 23:14:23
【问题描述】:
我有一个包含 741 个值的时间序列,我试图在每个非重叠块中提取其中的最大值。在我的例子中,第一个块包含前 10 个值,第二个包含从第 11 个到第 20 个值,第三个从第 21 个到第 30 个,而最后一个块包含一个值,即第 741 个值。
数据的前三个值:
log_returns <- c(0, 0.00394232277373519, 0.0287804332171326, ...)
我的尝试:
block_maxima = c()
for (i in 1:741){if (i %% 10 == 0) {block_maxima <- c(block_maxima, max(log_returns[i-9: i]))
}}
这段代码给了我结果:
c(0, 0.0287804332171326, 0.0287804332171326, ...)
我想要:
c(0.0287804332171326, 0.0236378411885054, 0.0185381209989108, ...)
有人可以指出我在代码中犯的错误吗?提前致谢。
【问题讨论】:
-
尝试将其包裹在
(i-9)即log_returns[(i-9): i]
标签: r for-loop if-statement