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.

Reply via email to