[R] apply in apply

Richard.Cotton at hsl.gov.uk Richard.Cotton at hsl.gov.uk
Fri May 30 11:02:20 CEST 2008


> I need to apply a function on each column of each matrix contained in 
> a list. Consider the following code,
> 
> > x <- 1:3
> > my.data <- list(matrix(c(1,2,3,4,5,6),ncol=2),
> >       matrix(c(4,5,6,7,8,9),ncol=2))
> >
> > par(mfrow=c(2,2))
> > results <- sapply(1:length(my.data),
> >          function(ii) apply(my.data[[ii]], 2, function(y) plot(x,y) )) 
# 
> > plot is for demonstration purposes
> 
> 
> It works, but I think this is quite dirty code. Is there a simpler 
> way of achieving this?

The last line can be simplified
results <- sapply(my.data, function(x) apply(x,2,sum))

(It is perhaps a little clearer what is going on when you use sum rather 
than plot as the example function.)

Regards,
Richie.

Mathematical Sciences Unit
HSL


------------------------------------------------------------------------
ATTENTION:

This message contains privileged and confidential inform...{{dropped:20}}



More information about the R-help mailing list