Dear All,
I regularly want to "apply" some function to an array in a way that the
arguments to the user function depend on the index on which the apply is
working. A simple example is:
A <- array( runif(160), dim=c(5,4,8) )
x <- matrix( runif(32), nrow=4, ncol=8 )
b <- runif(8)
f1 <- function( A, x, b ) { sum( A %*% x ) + b }
result <- rep(0.0,8)
for (i in 1:8) {
result[i] <- f1( A[,,i], x[,i] , b[i] )
}
This works, but is slow. I'd like to be able to do something like:
generalized.apply( A, MARGIN=3, FUN=f1, list(x=x,MARGIN=2),
list(b=b,MARGIN=1) ), where the lists tell generalized.apply to pass x[,i] and
b[i] to FUN in addition to A[,,i].
Does such a generalized.apply already exist somewhere? While I can write a C
function to do a particular case, it would be nice if there was a fast, general
way to do this.
John
............................................................................................
John P. Nolan
Math/Stat Dept., American University
Gray Hall, 4400 Massachusetts Ave, NW
Washington, DC 20016-8050
Phone: 202-885-3140
E-mail: [email protected]
Web: http://fs2.american.edu/jpnolan/www/
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel