【发布时间】:2014-09-12 23:55:51
【问题描述】:
我有一个数据点的 csv 文件(例如金融报价、实验记录等),我的数据有重复的时间戳。这是演示问题的代码:
library(zoo);library(xts)
csv="2011-11-01,50
2011-11-02,49
2011-11-02,48
2011-11-03,47
2011-11-03,46
2011-11-03,45
2011-11-04,44
2011-11-04,43
2011-11-04,42
2011-11-04,41
"
z1=read.zoo(textConnection(csv),sep=',')
w1=to.weekly(z1)
ep=endpoints(z1,"weeks",1)
w1$Volume=period.apply(z1,ep,length)
z2=read.zoo(textConnection(csv),sep=',',aggregate=T)
w2=to.weekly(z2)
ep=endpoints(z2,"weeks",1)
w2$Volume=period.apply(z2,ep,length)
vignette('zoo-faq'),条目 1,告诉我 aggregate=T 摆脱了 zoo 烦人的警告信息。但随后结果发生了变化:
> w1
z1.Open z1.High z1.Low z1.Close Volume
2011-11-04 50 50 41 41 10
> w2
z2.Open z2.High z2.Low z2.Close Volume
2011-11-04 50 50 42.5 42.5 4
是否有另一种方法可以消除警告消息但仍获得与 w1 相同的结果? (是的,我知道suppressWarnings(),这是我以前使用的,但我讨厌这个主意。) (我想知道是否将自定义聚合函数传递给 read.zoo,它会返回每天的 OHLCV 数据......但如果这可能的话,我什至无法解决。)
【问题讨论】: