# [R-SIG-Finance] rollapply and cummin

Voss, Kent VOSSK at kochind.com
Thu Aug 23 14:29:34 CEST 2007

```Thank you so much, the new rollapply worked like a charm.  I retrospect
what I was really trying to do (which the new rollapply works perfectly
for), is calculate the maximum cumulative loss over some period.

For the benefit of anyone else who has this problem...
So with the new rollapply, the following returns an n x m matrix where m
in the width specified in rollapply and is a cumulative sum over the
width
zl <- rollapply(z, 5, align='left',cumsum)

Then doing an apply gives the minimum for each row, and is the maximum
cumulative loss over the window.
zm <- apply(zl, 1, min)

Thank you so much Gabor and Z!!

-----Original Message-----
From: Gabor Grothendieck [mailto:ggrothendieck at gmail.com]
Sent: Wednesday, August 22, 2007 11:47 PM
To: Voss, Kent
Cc: r-sig-finance at stat.math.ethz.ch
Subject: Re: [R-SIG-Finance] rollapply and cummin

The usual case is that the function used in rollapply returns a single
number; however, if you really want to return a vector of 5 numbers try
not yet on CRAN but can be downloaded from the development repository.
>From within R:

library(zoo)
source("http://r-forge.r-project.org/plugins/scmsvn/viewcvs.php/*checkou
t*/pkg/R/rollapply.R?rev=363&root=zoo")
# ... now run your commands ...

On 8/22/07, Voss, Kent <VOSSK at kochind.com> wrote:
> I am getting some unexpected results using rollapply and the cummin
function that I am hoping someone can help me understand.  I'm just
trying to get a rolling cumulative minimum of a time series.  Think of
it as the maximum loss over a rolling window.
>
> Here's an example
> # Create a dummy sequence to use with a set of dates used to create a
> zoo object x <- c(0,rep(c(seq(1,5,by=1),seq(-1,-3, by=-1)),2))
> DateList <- as.Date(seq(ISOdate(1990,1,1), length.out=length(x), by="1

> day"), '%Y-%m-%d')
>
> z <- zoo(x,DateList)
>
> # Doing the following gets expected results, a rolling 5 day sum.  So
> far so good zl <- rollapply(z, 5, align='left',sum)
>
> # The following however creates an n x n matrix where n = the length
> of z, that I can't quite figure out zl <- rollapply(z, 5,
> align='left',cummin)
>
>
> Now I'm pretty new at this stuff, so I'm sure there's something I'm
missing, but I can't make heads or tails around the results of the
cummin.  Any help would be greatly appreciated.  Thanks in advance.
>
> Kent
>
>
>
>
>
> "EMF <kochind.com>" made the following annotations.
> ----------------------------------------------------------------------
> -------- The information in this e-mail and any attachments is
> confidential and intended solely for the attention and use of the
named addressee(s). It must not be disclosed to any person without
proper authority. If you are not the intended recipient, or a person
responsible for delivering it to the intended recipient, you are not
authorized to and must not disclose, copy, distribute, or retain this
message or any part of it.
>
> ======================================================================
> ========
>
>        [[alternative HTML version deleted]]
>
> _______________________________________________
> R-SIG-Finance at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only.
> -- If you want to post, subscribe first.
>

"EMF <kochind.com>" made the following annotations.
------------------------------------------------------------------------------
The information in this e-mail and any attachments is confidential and intended solely for the attention and use of the named addressee(s). It must not be disclosed to any person without proper authority. If you are not the intended recipient, or a person responsible for delivering it to the intended recipient, you are not authorized to and must not disclose, copy, distribute, or retain this message or any part of it.

```