开发者

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

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 elem开发者_如何学编程ents, 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.

cheers


I got several answers:

library(zoo) 
library(chron)

#1
zz <- z <- zoo(1:10, chron(0:9/5)) 
zz[] <- ave(coredata(z), as.Date(time(z)), FUN = function(x) head(x, 1)) 
cbind(z, zz)


#2
z <- zoo(1:10, chron(0:9/5)) 
z.ag <- aggregate(z, as.Date, head, 1) 
na.locf(z.ag, xout = time(z)) 


#3
z.na <- ifelse.zoo(!duplicated(as.Date(time(z))), z, NA) 
na.locf(z.na) 

cheers

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜