【问题标题】:Calculate cumulative standard deviation [duplicate]计算累积标准偏差
【发布时间】:2013-08-13 16:27:22
【问题描述】:

我正在尝试计算时间序列中值的标准偏差,但我想通过每次从初始日期值提前一天来逐步计算。我知道在 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)}

【问题讨论】:

    标签: r


    【解决方案1】:

    TTR::runSDcumulative=TRUE 一起使用。

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

    【讨论】:

    • 尽管我们喜欢 xts 对象,但您实际上不需要在这里转换为一个:runSD(test.df[, 2], n=1, cumulative=TRUE)
    • @GSee:每个使用时间序列的人都需要 xts。
    猜你喜欢
    • 2016-04-24
    • 2011-02-15
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多