[R] Repeat the first day data through all the day. Zoo

Gabor Grothendieck ggrothendieck at gmail.com
Wed Aug 25 13:56:25 CEST 2010


On Wed, Aug 25, 2010 at 7:43 AM, skan <juanpide at gmail.com> wrote:
> I have a zoo series. It lasts 10 years and its frequency is 15min.
>
> I'd like to get a new zoo series (or vector) with the same number of
> elements, whith each element equal to the first element of the day. That's,
> The first element everyday is repeated throughout the wole day.
>
> This is not same as aggregate(originalseries,as.Date,head,1) because this
> gives a vector with just one element for each day.

Try ave:

> library(zoo)
> library(chron)
> zz <- z <- zoo(1:100, chron(0:9/5))
> zz[] <- ave(coredata(z), as.Date(time(z)), FUN = function(x) head(x, 1))
> cbind(z, zz)
                     z zz
(01/01/70 00:00:00)  1  1
(01/01/70 04:48:00)  2  1
(01/01/70 09:36:00)  3  1
(01/01/70 14:24:00)  4  1
(01/01/70 19:12:00)  5  1
(01/02/70 00:00:00)  6  6
(01/02/70 04:48:00)  7  6
(01/02/70 09:36:00)  8  6
(01/02/70 14:24:00)  9  6
(01/02/70 19:12:00) 10  6



More information about the R-help mailing list