将函数应用于滚动窗口

R 中的时间序列数据处理

Harrison Brown

Graduate Researcher in Geography

zoo 的滚动函数

zoo::roll*

  • rollmean()
  • rollmax()
  • rollsum()

局限性:

  • rollmin()
  • 仅有部分函数
R 中的时间序列数据处理

rollapply

rollapply(data = ftse,
          width = 7,
          FUN = min,
          align = 'right',
          fill = NA)

参数:

  • data:时间序列对象
  • width:窗口宽度(k
  • FUN:汇总函数(meanmax,…)
  • align:窗口对齐('left''right''center'
  • fill:窗口外填充值
R 中的时间序列数据处理

滚动应用函数

目标:

  • 在30天窗口内求取取值范围
  • 近似数据"波动"
daily_temp
2019-01-01 13.191304
2019-01-02  6.945833
2019-01-03  8.495833
2019-01-04  8.683333
2019-01-05  7.400000
...
find_range <- function(x){
  max(x) - min(x)
}
daily_temp_range <- 
  rollapply(
      daily_temp,
    FUN = find_range,
    width = 30,
    align = 'right',
    fill = NA
  )
R 中的时间序列数据处理

滚动应用函数

autoplot(daily_temp_range) + 
  theme_light() + 
  labs(y = 'Temperature Range')

"每日温度范围"时间序列图。该图展示范围如何随时间变化;范围基于30天滚动窗口计算,图中显示最小值与最大值的差。

R 中的时间序列数据处理

Passons à la pratique !

R 中的时间序列数据处理

Preparing Video For Download...