I’ve a csv file of data points (e.g. financial ticks, experiment recordings, etc.), and my data has duplicate timestamps. Here is code demonstrating the problem:
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’), entry 1, tells me aggregate=T gets rid of zoo’s annoying warning message. But then the results change:
> 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
Is there another way to get rid of the warning message but still get the same results as w1? (Yes, I know about suppressWarnings(), which is what I was using before, but I hate the idea.)
(I was wondering about passing a custom aggregate function to read.zoo that would return OHLCV data for each day… but couldn’t even work out if that was even possible.)
Just as a simple variant on Dirk’s suggestion, this should work