将函数应用于指定范围; 变化率

jon*_*nie 1 r apply

可能重复:
计算R中的移动平均值

我在R中编写了一个变化率函数,定义如下:

rateChange <- function(x) ((last(x)-first(x))/first(x))*100
Run Code Online (Sandbox Code Playgroud)

它适用于各种日期范围,例如5天,10天,200天等的变化率.但是,我现在需要在每天之间应用此功能.例如,为了确定5天的变化率,需要过去6次数据观察.

以下是Excel中的示例,为清楚起见,我正在尝试重现"更改率"列:

数据

谢谢!

Jos*_*ich 6

我建议使用TTR::ROC:

library(TTR)
roc <- c(18.89, 18.93, 18.55, 18.77, 18.87, 18.91)
ROC(roc, type="discrete")*100
# [1]         NA  0.2117522 -2.0073957  1.1859838  0.5327651  0.2119767
Run Code Online (Sandbox Code Playgroud)