如何使用 s/t/l/.. apply family 表示时间序列中的模式值?

How to mean patterned values in a time series using s/t/l/.. apply family?

添加了可重现的示例:

set.seed(1)
y <- ts(rnorm(28))
y # the series from which 3+4*i pattern is introduced
mean(c(y[3 + 4*0], y[3 + 4*1], y[3 + 4*2], y[3 + 4*3], y[3+4*4], y[3+4*5], y[3+4*6])) #[1] 0.4326433

那么,如何在没有这些乱七八糟的东西的情况下找到 0.4326433? 注意,当时间序列的长度很大时,写这么乱几乎是不可能的!
顺便说一句,我有能力 "for" 解决方案来做到这一点;我不是在问 "for" 解决方案。

你可以试试

mean(y[3+4*(0:6)])
#[1] 0.4326433

您也可以试试:

mean(y[seq(3, length(y), 4)])
#[1] 0.4326433