【发布时间】:2022-01-07 04:34:15
【问题描述】:
我在 R 中有一个时间序列 (df),我想计算其在不同时期的百分比变化:
month x
Jan 1
Feb 4
Mar 5
Apr 3
May 1
Jun 2
我可以使用以下方法计算该系列的每月百分比变化:
df <- df %>%
mutate(mom_pct = (count/lag(count)*100-100))
这会导致
month x mom_pct
Jan 1 NA
Feb 4 300
Mar 5 25
Apr 3 -40
May 1 -66.67
Jun 2 100
我不知道如何计算三个月百分比变化的三个月(即过去三个月的总和除以前三个月)。 我尝试了以下方法:
df <- df %>%
mutate("3mo3m_pct" = (rollapplyr(count, 3, sum, fill = NA)/rollapplyr(lag(count, -3), 3, mean, fill = NA))*100-100)
但这会返回错误 - x n must be a nonnegative integer scalar, not a double vector of length 1.
【问题讨论】:
标签: r time-series zoo