On Thu, 13 May 2010, Hutchinson,David [PYR] wrote:

I have been using aggregate function to determine the annual minimum in
a daily time series. However, I was also hoping to determine the date of
occurrence without having to loop through each year to identify the date
of each minimum returned from aggregate(). Is there a more convenient
way of doing so?

You could do something like this:

## determine position of minimum and number of observations
ix <- aggregate(dly, year, function(x) c(which.min(x), length(x)))

## expand to overall index
ix <- as.vector(cumsum(c(0, head(ix[,2], -1))) + ix[,1])

## subset original series
dly[ix]

hth,
Z

Thanks in advance,

Dave

library(zoo)
n <- 1000
dly <- zoo(  x = rnorm(n),   order.by = seq.Date(as.Date('1970-01-01'),
by = 'day', length.out = n)   )
year <- as.numeric( format(index(dly), '%Y') )
annual.min <- aggregate( dly, by = year, FUN = min )


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org 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.


______________________________________________
R-help@r-project.org 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