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 <[email protected]> wrote:
> On Mon, Jun 16, 2014 at 7:04 AM, Costas Vorlow <[email protected]>
> 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 <[email protected]> wrote:
> >>
> >> On Mon, Jun 16, 2014 at 3:41 AM, Costas Vorlow <[email protected]
> >
> >> 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]]
______________________________________________
[email protected] 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.