r - 从周一到周五聚合 xts 对象的返回

标签 r xts finance zoo endpoints

我有一个离散返回向量。

require(xts)

set.seed(1)
x <- xts(rep(0.01,20), Sys.Date()-20:1)
colnames(x) = c("return")

> x
           return
2015-01-30   0.01
2015-01-31   0.01
2015-02-01   0.01
2015-02-02   0.01
2015-02-03   0.01
2015-02-04   0.01
2015-02-05   0.01
2015-02-06   0.01
2015-02-07   0.01
2015-02-08   0.01
2015-02-09   0.01
2015-02-10   0.01
2015-02-11   0.01
2015-02-12   0.01
2015-02-13   0.01

我需要将每日返回汇总为每周返回(周一至周五)。计算应从星期一开始,从 cumprod(1+x)-1 到星期五。每周的计算都从零开始。当我有价格向量时,我知道如何使用 endpoints 函数来实现这一点。不幸的是我只有返回。我的新向量应该如下所示

> x
               return
2015-02-01 0.03030100
2015-02-08 0.07213535
2015-02-13 0.05101005

感谢您的帮助。

最佳答案

如果你想聚合,你不需要cumprod。 cumprod 将为传递给它的对象中的每个观察结果返回一个观察结果。您需要 prod

由于您将周定义为周一至周五,因此您可以使用 apply.weekly 轻松完成此操作:

x <- xts(rep(0.01,15), as.Date("2015-02-14")-15:1)
colnames(x) <- "return"
apply.weekly(1+x, prod)-1
#                return
# 2015-02-01 0.03030100
# 2015-02-08 0.07213535
# 2015-02-13 0.05101005

如果您使用其他周定义(例如星期三至星期三),则需要将 period.applyendpoints 结合使用。

关于r - 从周一到周五聚合 xts 对象的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28595894/

相关文章:

r - 将相对路径转换为绝对路径

r - 为什么我的数值变量有日期以及如何将整个变量转换为 xts?

benchmarking - 算法交易模拟器/基准数据

r - 如何使用 R 从 Yahoo Finance 抓取财务数据

r - 这是什么意思?

r - R 中的 gputools - 无效设备功能错误

r - 如何在分解的时间序列图中自定义标题、轴标签等

r - 有没有办法让 merge.xts 保持名称不变?

r - 将 xts 对象中的所有列乘以另一个单列 xts 对象

Python - 二项式期权定价代码