【发布时间】:2014-02-10 15:40:33
【问题描述】:
我有每月的体重观察和每日回报,我正在尝试计算一个月中每一天的几何回报。可能更容易看到模式:
如何重现“期望的输出”列?来自 R 中的基本函数的解决方案或任何包建议都表示赞赏!
- 编辑 1: 谢谢。
这是一些示例数据和我一直在研究的解决方案:
set.seed(33)
z <- c(.35,NA,NA,NA,.2,NA,NA)
z1 <- c(.35,.35,.35,.35,.2,.2,.2)
z2 <- rnorm(7)
zCbind <- data.frame(cbind(z,z1,z2))
colnames(zCbind) <- c("months","na.locf(months)","values")
solution1 <- ifelse(zCbind[,1] == zCbind[,2],
zCbind[,1], # if TRUE
zCbind[,2]*apply(zCbind[,3],2,cumprod)) # if FALSE
我知道我的问题是错误的。我尝试过的解决方案是:
- 将 cumprod 替换为 prod 函数
- 通过绑定或转换矩阵/df 来更改 zCbind[,3] 的格式
- 这看起来很有希望,但我找不到更多关于 cumprod 函数的“cumprod.column”包装器的文献:http://braverock.com/brian/R/PerformanceAnalytics/html/cum.utils.html
【问题讨论】:
-
您应该提供一些数据以及您尝试过的内容。请阅读this。
-
所以你想根据上个月的最后一天的固定权重加上每日增量的汇总计算每日权重?