[R] Vectorize a bootstrapped calculation

Fernando Saldanha fsaldan1 at gmail.com
Sat May 7 20:18:48 CEST 2005


I would like to vectorize a calculation that is bootstrapped, in the
sense that each step uses the results of the previous steps. For
example:

x <- rep(NA, 5)
y <- rnorm(5)
for (i in 1:5) {
	x[i] <- max(y[i], ifelse(i > 0, min(x[1:i-1], 0)))
}

(the functions max and min are used just as an example, I would like
to do something like this for arbitrary functions f and g).

It would be nice to be able to write something like:

x <- cumsapply(y, max, min)

where the first function, max in this example, would be applied to the
i-th element of y, and the second function, min in the example, would
be applied to the vector x[1:i-1].

Of course one can program such a function, the issue is can it be done
efficiently, and not just as a wrapping of the for loop above?

FS




More information about the R-help mailing list