在 R 中扩展 Window(时间序列预测)

Expanding Window(time series forecasting) in R

嗨,我是 Whosebug 和 R 的新手。我目前正在使用 Rstudio 和 Python 学习机器学习和深度学习课程。在本课程中,他也教授预测,他只使用 Python 来实现这些代码。在预测的特征工程部分,他正在实施扩展 Window 特征,这是 Pandas 的一部分。谁能帮我在 R 中找到这段代码。

他在python中使用的密码是Feature['Expand_Max']=df['births'].expanding().max()

数据集在 运行 这段代码之前看起来像这样:

日期 出生 滞后 1 滞后2 Roll_mean Roll_max
1959-01-01 35 1959 1 1 不适用 不适用 不适用 不适用
1959-01-02 32 1959 1 2 35 不适用 33.5 不适用
1959-01-03 30 1959 1 3 32 不适用 31.0 35
1959-01-04 31 1959 1 4 30 不适用 30.5 32
1959-01-05 44 1959 1 5 31 不适用 37.5 44
1959-01-06 29 1959 1 6 44 不适用 36.5 44
1959-01-07 45 1959 1 7 29 不适用 37.0 45
1959-01-08 43 1959 1 8 45 不适用 44.0 45
1959-01-09 38 1959 1 9 43 不适用 40.5 45
1959-01-10 27 1959 1 10 38 不适用 32.5 43

在运行这段代码之后数据集看起来像这样:

他在python中使用的密码是Feature['Expand_Max']=df['births'].expanding().max()

日期 出生 滞后 1 滞后2 Roll_mean Roll_max Expand_Max
1959-01-01 35 1959 1 1 不适用 不适用 不适用 不适用 35
1959-01-02 32 1959 1 2 35 不适用 33.5 不适用 35
1959-01-03 30 1959 1 3 32 不适用 31.0 35 35
1959-01-04 31 1959 1 4 30 不适用 30.5 32 35
1959-01-05 44 1959 1 5 31 不适用 37.5 44 44
1959-01-06 29 1959 1 6 44 不适用 36.5 44 44
1959-01-07 45 1959 1 7 29 不适用 37.0 45 45
1959-01-08 43 1959 1 8 45 不适用 44.0 45 45
1959-01-09 38 1959 1 9 43 不适用 40.5 45 45
1959-01-10 27 1959 1 10 38 不适用 32.5 43 45

您可以将 zoo::na.locffromLast = TRUE 一起使用,这将用列中最后一个非 NA 值填充 NA 值,cummax 将 return 每个点的累积最大值。

df$Roll_max <- cummax(zoo::na.locf(df$Roll_max, fromLast = TRUE))
df$Roll_max
#[1] 35 35 35 35 44 44 45 45 45 45

我们可以使用

library(data.table)
setDT(df)[, Roll_max := cummax(nafill(Roll_max,  type  = "nocb"))]