Sérgio Nunes <snunes <at> gmail.com> writes: > > Hi, > > I'm trying to aggregate date values using the aggregate function. For example: > > aggregate(data,by=list(weekdays(LM),months(LM)),FUN=length) > > I would also like to aggregate by year but there seems to be no > years() function. > Should there be one? Is there any alternative choice? > > Also, a hours() function would be great. Any tip on this? > > Thanks in advance! > Sérgio Nunes >
Well, working by analogy with the existing functions, this might work (not messing with setting up an S3 default though): > apropos("weekdays") [1] "weekdays" "weekdays.Date" "weekdays.POSIXt" > weekdays.Date function (x, abbreviate = FALSE) format(x, ifelse(abbreviate, "%a", "%A")) <environment: namespace:base> d1 = Sys.time() years <- function(x,abbreviate=FALSE) { as.numeric(format(x, ifelse(abbreviate, "%y", "%Y"))) } hours <- function(x) { as.numeric(format(x,"%H")) } years(d1); hours(d1) ______________________________________________ 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 and provide commented, minimal, self-contained, reproducible code.