R 使用quantmod和x27聚合每日数据;至。每周';函数创建星期一而不是星期五结束的每周数据
我正在尝试使用quantmod中的“to.weekly”函数将每日股价数据(仅限收盘)汇总为每周股价数据。xts objectR 使用quantmod和x27聚合每日数据;至。每周';函数创建星期一而不是星期五结束的每周数据,r,xts,quantmod,R,Xts,Quantmod,我正在尝试使用quantmod中的“to.weekly”函数将每日股价数据(仅限收盘)汇总为每周股价数据。xts objectfoo持有从2011年1月3日星期一开始到2011年9月20日星期一结束的股票每日股价数据。为了汇总这些每日数据,我使用了: tmp我想出了一个只能产生接近值的方法,也许可以进一步修改它以返回OHLC系列 假设foo是xts对象,首先我们创建星期五的索引向量: fridays = as.POSIXlt(time(foo))$wday == 5 然后我们在它前面加上0:
foo
持有从2011年1月3日星期一开始到2011年9月20日星期一结束的股票每日股价数据。为了汇总这些每日数据,我使用了:
tmp我想出了一个只能产生接近值的方法,也许可以进一步修改它以返回OHLC系列
假设foo
是xts
对象,首先我们创建星期五的索引向量:
fridays = as.POSIXlt(time(foo))$wday == 5
然后我们在它前面加上0
:
indx <- c(0, which(fridays))
结果:
[,1]
2011-01-07 2993
2011-01-14 2970
2011-01-21 2940
2011-01-28 3075
对于周五(由于市场关闭,偶尔在周四),使用:
周一(由于市场关闭,偶尔在周二)使用:
或者,您可以创建一个自定义向量Date
s,其中包含每周要关联的日期。例如,无论市场关闭情况如何,强制每周与星期五相关:
customIdx=seq(自=截止日期(“2011-01-07”),by=7,length.out=nrow(tmp))
索引(tmp)=自定义IDX感谢安纳托利。我已经将代码改编成包装器代码,并用几个xts对象对其进行了测试,它似乎工作得很好。
indx <- c(0, which(fridays))
period.apply(foo, INDEX=indx, FUN=last)
[,1]
2011-01-07 2993
2011-01-14 2970
2011-01-21 2940
2011-01-28 3075
tmp = to.weekly(foo, indexAt = "endof")
tmp = to.weekly(foo, indexAt = "startof")`