[R] updating elements of a list of matrixes without 'for' cycles
Jue Lin-Ye
jl.iccp at gmail.com
Mon Feb 1 15:29:53 CET 2016
>
> Date: Sat, 30 Jan 2016 01:03:30 +0000
> From: Matteo Richiardi <
>
> Matteo.Richiardi at maths.ox.ac.uk>
> To: r-help at r-project.org
> Subject: [R] updating elements of a list of matrixes without 'for'
> cycles
> Message-ID:
> <
> CABSrU1LkOHUZ8M9JW1ju+neMksPriRRTD_0WzOtRLWi3z6dA9w at mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> Hi, following an earlier suggestion from the list, I am storing my
> data in a "cube", i.e. an array of matrixes.
> Is there any smarter way of updating the elements of the cube through
> a function, other than the three 'for' cycles in the example below?
> (please note that the example is simplistic; in particular, my
> function is more complicated).
>
> # parameters
> I <- 2L
> J <- 2L
> H <- 2L
>
> # data container: an array of matrixes
> mycube <- array(dim=c(I,J,H))
>
> # initialisation
> for (h in 1:H) {
> init <- matrix(c(rep(0,J)),nrow=I,ncol=J)
> mycube[,,h] <- init
> }
>
> # function
> foo = function(i,j,h){
> mycube[i,j,h] <<- i*j*h
> }
>
> # update
>
> for(h in 1:H){
> # males:
> for(i in 1:I)
> for(j in 1:J)
> foo(i,j,h)
> }
>
> Thanks a lot for your help. Matteo
>
>
>
Greetings! Have you tried sapply() on this script?
--
Jue
[[alternative HTML version deleted]]
More information about the R-help
mailing list