计算累积标准差

tca*_*h21 2 r

我正在尝试计算时间序列中值的标准差,但我希望每次从初始日期值提前一天逐步增加.我知道有一种方法可以在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)
Run Code Online (Sandbox Code Playgroud)

这就是我现在这样做的方式.

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

Jos*_*ich 5

使用TTR::runSDcumulative=TRUE.

library(TTR)
x <- xts(test.df[,2],test.df[,1])
runSD(x, n=1, cumulative=TRUE)
Run Code Online (Sandbox Code Playgroud)

  • 尽管我们喜欢`xts`对象,但实际上你并不需要在这里转换为:`runSD(test.df [,2],n = 1,cumulative = TRUE)` (3认同)
  • @GSee:每个使用时间序列的人都需要xts. (2认同)