On Thu, Sep 06, 2012 at 10:50:00AM -0400, Jie wrote: > Dear All, > > Suppose I have two loops and would like to convert it to sapply, how > to achive the goal? > Below is an example, the calculation inside the loop is not essential, > so please do not use tricks for this part. > a <- 1:5 > b <- 1:10 > resu <- matrix(NA,nrow=5,ncol=10) > for (i in 1:5) > { > for (j in 1:5) > { > resu[i,j]=a[i]+b[j] # will be more complicated > } > }
Hi. For this part, when the output is a matrix, try the following. a <- 1:5 b <- 1:10 f <- function(a, b) { a+b } resu <- outer(a, b, FUN=f) resu [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 2 3 4 5 6 7 8 9 10 11 [2,] 3 4 5 6 7 8 9 10 11 12 [3,] 4 5 6 7 8 9 10 11 12 13 [4,] 5 6 7 8 9 10 11 12 13 14 [5,] 6 7 8 9 10 11 12 13 14 15 Hope this helps. Petr Savicky. ______________________________________________ R-help@r-project.org mailing list 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.