> On Dec 16, 2015, at 5:34 PM, David Winsemius <dwinsem...@comcast.net> wrote: > > >> On Dec 16, 2015, at 4:18 PM, Matteo Richiardi <matteo.richia...@gmail.com> >> wrote: >> >> I have to evolve each element of a matrix W >> >> W <- matrix(0,2,3) >> >> according to some function which uses the indices of the matrix [i,j] as >> arguments: >> w.fun = function(i,j) { >> return A[i]*B[j]/(C[i,j]) >> } >> >> where >> A<-c(100,100) >> B<-c(200,200,200) >> C <- matrix( rnorm(6,mean=0,sd=1), 2, 3) >> >> How can I do it, without recurring to a loop? Also, in my application I >> need to pass the function another argument. > > mapply( function( i,j,fac) {fac*A[i]*B[j]/C[i,j]}, > i=row(W), > j=col(W), > MoreArgs=list(fac=10) ) > [1] -86207.97 325768.16 -135764.41 -913036.95 -142509.39 > [6] 243715.67 > > > N.B. all of the *apply functions are really loops.
Furthermore, you can neatly populate the W matrix with the `[<-` function: W[] <- mapply( function( i,j,fac) {fac*A[i]*B[j]/C[i,j]}, i=row(W), j=col(W),MoreArgs=list(fac=10) ) > W [,1] [,2] [,3] [1,] -86207.97 -135764.4 -142509.4 [2,] 325768.16 -913037.0 243715.7 > > -- > David. >> >> Thanks a lot for your suggestions. >> Matteo >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > David Winsemius > Alameda, CA, USA > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. David Winsemius Alameda, CA, USA ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.