[R] Repeat the first day data through all the day. Zoo
Gabor Grothendieck
ggrothendieck at gmail.com
Wed Aug 25 13:57:30 CEST 2010
On Wed, Aug 25, 2010 at 7:56 AM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
> 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))
That should have been 10, not 100; however, it ignored 11:100 so the
answer is the same.
>> 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