将函数应用于指定范围;变化率(what is the rate of change of the function)

Possible Duplicate: Calculating moving average in R

Possible Duplicate:
Calculating moving average in R

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

rateChange <- function(x) ((last(x)-first(x))/first(x))*100

例如,要确定 5 天的变化率,需要过去 6 个数据观察。

这里是 Excel 中的一个例子,为了清楚起见,我试图重现“变化率”列:

data

非常感谢。

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
4
x <- rnorm(5)
x
#[1] -0.48504744 -1.71843913  0.03890147 -2.11410329 -1.59765182
100*(tail(x, -1) - head(x, -1))/head(x, -1)
#[1]   254.28269  -102.26377 -5534.50754  -24.42887

如果您需要它与输入向量的长度相同,则可以像这样在末尾添加 NA

c(100*(tail(x, -1) - head(x, -1))/head(x, -1), NA)
2

这是接近的,但数学(结果)并不完全相同:

 roc <- c(18.89, 18.93, 18.55, 18.77, 18.87, 18.91)
 sapply(seq_along(roc)[-1], function(i) 100*(roc[i] - roc[i-1])/roc[i-1])

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(453)
Woocommerce评论部分在选项卡之外(在单个产品页面上)不会显示评论
上一篇
Woocommerce评论部分在选项卡之外(在单个产品页面上)不会显示评论
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(65条)