The other approach is the pastecs::daystoyears approach where each year consists of 365.25 days.
Kjetil Brinchmann Halvorsen <kjetil <at> acelerate.com> writes: : : A followup: : : How do people treat dsaily time series, when there is a yearly cycle? : : For the moment I just left out the 29 of February's, but that dsoes'nt look : really good. Is the only way to include them to use irregular time series? : : Kjetil : : Gabor Grothendieck wrote: : : > : >From: Matthieu Cornec <matthieu.cornec <at> gmail.com> : > : > : > : >>I create a multivariate time series containing NA values (that could : >>come directly from an imported file,) : >>I want to compute a linear regression and obtain a time serie for both : >>residuals and fitted values. I have tried the trick ts.intersect, : >>without success. : >> : >>Could you help me out of this? : >>#### : >>Example: : >> : >>y<-ts(1:10+rnorm(10)) : >>x<-ts(1:10) : >>datats<-cbind(y,lagx=lag(x)) : >> : >>Notice the datats could come directly from an imported file, that is : >>why I did not use ts.intersect(y,lagx=lag(x)) : >> : >>fit<-lm(y~lagx,data=datats,na.action=na.omit) : >> : >>but how do I get a time serie of residuals instead of a vector residuals (fit)? : >>###### : >> : >>Matthieu Cornec : >> : >> : >> : > : >ts is used for regular time series. Removing NAs, other : >than at the beginning or end, means its probably best to : >model it as an irregular time series and so to use an : >irregular time series package. Below it is done in zoo. : >Also review the comments in my post to your previous question : >along these lines and, in particular, be sure you read the zoo vignette referenced there which has 15 pages : of examples : >of time series manipulations. : > : > : >library(zoo) : > : ># set up test data with NAs : >set.seed(1) : >x <- zoo(1:10) : >y <- x + rnorm(10) : >y[5] <- x[2] <- NA : > : ># create multivariate zoo series without NAs : ># Note: if you want to fill in NAs rather than omit them see ?na.locf : >z <- na.omit(merge(y, lagx = lag(x, -1))) : > : ># run lm : ># (This also works: z.lm <- lm(I(y ~ lagx), z) : ># but the syntax is experimental.) : >z.lm <- lm(y ~ lagx, as.data.frame(z)) : > : ># get fitted and resid using fact that their time base is that of z : >z.fit <- z.resid <- z[,1] : >z.fit[] <- fitted(z.lm) : >z.resid[] <- resid(z.lm) : > : ># We can just use the zoo series already created. Its not really : ># necessary to convert it to ts but if for some reason we want a : ># ts series the following creates one. : ># (This uses facts that we know y starts at 1 and is regularly spaced : ># and other series have a subset of the time base of y.) : >ts(coredata(merge(y, x, z.fit, z.resid))) : > : >______________________________________________ : >R-help <at> stat.math.ethz.ch mailing list : >https://stat.ethz.ch/mailman/listinfo/r-help : >PLEASE do read the posting guide! http://www.R-project.org/posting- guide.html : > : > : > : > : > : ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html