2

我正在尝试计算时间序列中值的标准偏差,但我想通过每次从初始日期值提前一天来逐步完成。我知道在 R 中有一种方法可以做到这一点(可能使用 ddply?),它不涉及令人讨厌的 for 循环。谢谢你的帮助!

d<-seq(from=as.Date("2013-01-01"), to=as.Date("2013-02-01"), by="day")
v <-rnorm(32, 10, 5)
test.df<-data.frame(the_date=d, value=v)

这就是我现在的做法。

result <- c()
for(i in 2:nrow(test.df)){ result[i-1] <- sd(test.df[1:i,]$value)}
4

1 回答 1

6

TTR::runSD与 一起使用cumulative=TRUE

library(TTR)
x <- xts(test.df[,2],test.df[,1])
runSD(x, n=1, cumulative=TRUE)
于 2013-08-13T16:37:19.343 回答