Thanks Joshua. Your time and input is much appreciated as always. What will happen if I pick up "manually" the 00' hour. I.e.,
I count ever n'th (=4 quarters in my case) and pick up this observation, forming a new XTS object. I should not have any alignment problems then, should I? Example: get.hourly.from.quarterly<-function(x) { mydata<-x mystart<-as.POSIXlt(start(amprionsun.data))$min myhourlysequenceindex<-seq(0+mystart,length(mydata),4 ) temp<-mydata[myhourlysequenceindex] return(temp) } > get.hourly.from.quarterly(observation) [,1] 2012-05-02 10:00:00 4 2012-05-02 11:00:00 8 2012-05-02 12:00:00 12 2012-05-02 13:00:00 16 2012-05-02 14:00:00 20 2012-05-02 15:00:00 24 2012-05-02 16:00:00 28 2012-05-02 17:00:00 32 2012-05-02 18:00:00 36 2012-05-02 19:00:00 40 > How does this look like to you? Many thanks again, Costas __________________________________________________________________ *Costas Vorlow <http://www.gravatar.com/avatar/49a9dee59073b1ed4a36440a06aeb81b> * *http://www.linkedin.com/in/costasvorlow <http://www.linkedin.com/in/costasvorlow>* *http://www.vorlow.com* <http://www.vorlow.com> â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â On 18 June 2014 14:12, Joshua Ulrich <josh.m.ulr...@gmail.com> wrote: > On Mon, Jun 16, 2014 at 7:04 AM, Costas Vorlow <costas.vor...@gmail.com> > wrote: > > Dear Joshua, > > > > Thanks for your reply. As I see, the solution you suggest aligns the time > > stamps as required but leaves the aggregation results as is. > > > > Hence, the last quarter data of every hour are not aggregated still... > > > > Am I right or am I understanding something wrongly? > > > You still seem to think the "00" time is the end of the hour, but it's > not; it's the beginning. The first 3 rows of 'observation' contain > data for the first hour (9 o'clock). The fourth row is the beginning > of the second hour (10 o'clock). > > > I tried to "move" ahead ends by one (ends<-ends+1) but this does not work > > either. It seems that if you change the endpoints, still aggregation > happens > > every 45 minutes as you pointed out, although the ends variable points to > > the round hour time stamp... > > > ends <- endpoints(observation,'hours')+1 > > The above doesn't work because endpoints always includes the last > observation, which is now out of bounds. You would need to adjust the > first and last 'ends' values. > > ends <- endpoints(observation,'hours')+1 > ends[1] <- 0 > ends[length(ends)] <- nrow(observation) > ends <- unique(ends) > temp <- period.apply(observation, ends, sum) > > Be very careful with the results in this 'temp' object though. If you > merge it with another xts object, you will have a look-ahead bias > because you will know the aggregate for the time period before it has > occurred. > > > > > > > __________________________________________________________________ > > Costas Vorlow > > http://www.linkedin.com/in/costasvorlow > > http://www.vorlow.com > > > > â â â â â â â â â â â â â â â â â â â > > â â â â â â â â â â â â â â â â > > > > > > On 16 June 2014 13:31, Joshua Ulrich <josh.m.ulr...@gmail.com> wrote: > >> > >> On Mon, Jun 16, 2014 at 3:41 AM, Costas Vorlow <costas.vor...@gmail.com > > > >> wrote: > >> > Dear all, > >> > > >> > Why aggregation of 15 minute xts data happens on the 45th (3rd > quarter) > >> > and > >> > not the exact hour close (i.e., 00) time? > >> > > >> The "00" time is the beginning of the hour, not the end. E.g., > >> 10:00:00 is the beginning of the 10-o'clock hour. > >> > >> > For example, temp below is an xts sequence with 15-minute frequency: > >> > > >> >> quarters <- ISOdatetime(2012,05,02,9,0,0) + seq(0:39)*15*60; > >> >> set.seed(42); > >> >> observation <- xts(1:40, order.by=as.POSIXct(quarters)); > >> >> head(observation); > >> > [,1] > >> > 2012-05-02 09:15:00 1 > >> > 2012-05-02 09:30:00 2 > >> > 2012-05-02 09:45:00 3 > >> > 2012-05-02 10:00:00 4 > >> > 2012-05-02 10:15:00 5 > >> > 2012-05-02 10:30:00 6 > >> > > >> >> ends<-endpoints(observation,'hours'); > >> >> temp<-period.apply(observation, ends,sum); > >> >> temp > >> > [,1] > >> > 2012-05-02 09:45:00 6 > >> > 2012-05-02 10:45:00 22 > >> > 2012-05-02 11:45:00 38 > >> > 2012-05-02 12:45:00 54 > >> > 2012-05-02 13:45:00 70 > >> > 2012-05-02 14:45:00 86 > >> > 2012-05-02 15:45:00 102 > >> > 2012-05-02 16:45:00 118 > >> > 2012-05-02 17:45:00 134 > >> > 2012-05-02 18:45:00 150 > >> > 2012-05-02 19:00:00 40 > >> >> > >> > > >> > I get the sum of every quarter within the hour on the third quarter. > How > >> > can I implicitly calculate the sum of the quarterly data on the hour's > >> > close (10:00, 11:00, 12:00 and so on) ? > >> > > >> Again, those are the beginnings of the hours. endpoints() and > >> period.apply() only use the timestamps in your data. If you want to > >> round up to the beginning of the next hour, use align.time(). > >> > >> > align.time(temp, 3600) > >> [,1] > >> 2012-05-02 10:00:00 6 > >> 2012-05-02 11:00:00 22 > >> 2012-05-02 12:00:00 38 > >> 2012-05-02 13:00:00 54 > >> 2012-05-02 14:00:00 70 > >> 2012-05-02 15:00:00 86 > >> 2012-05-02 16:00:00 102 > >> 2012-05-02 17:00:00 118 > >> 2012-05-02 18:00:00 134 > >> 2012-05-02 19:00:00 150 > >> 2012-05-02 20:00:00 40 > >> > >> > Many thanks in advance, > >> > Costas > >> > > >> > __________________________________________________________________ > >> > > >> > *Costas Vorlow > >> > <http://www.gravatar.com/avatar/49a9dee59073b1ed4a36440a06aeb81b> * > >> > *http://www.linkedin.com/in/costasvorlow > >> > <http://www.linkedin.com/in/costasvorlow>* > >> > *http://www.vorlow.com* <http://www.vorlow.com> > >> > > >> > â â â â â â â â â â â â â â â â â â > >> > â â â â â â â â â â â â â â â â â > >> > > >> > >> Best, > >> -- > >> Joshua Ulrich | about.me/joshuaulrich > >> FOSS Trading | www.fosstrading.com > > > > > [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.