[R] Slow computation in for loop
Liaw, Andy
andy_liaw at merck.com
Wed May 28 14:08:06 CEST 2003
I don't know if this will help you or not, but might worth a try. You can
replace the two inner for loops with nested calls to sapply(). For example:
> sapply(1:5, function(x) sapply(6:10, function(y) x+y))
[,1] [,2] [,3] [,4] [,5]
[1,] 7 8 9 10 11
[2,] 8 9 10 11 12
[3,] 9 10 11 12 13
[4,] 10 11 12 13 14
[5,] 11 12 13 14 15
Using sapply() this way is a sneaky way of avoiding explicit for loops, but
whether it actually saves resources, you have to try and see.
HTH,
Andy
> -----Original Message-----
> From: Yves Brostaux [mailto:brostaux.y at fsagx.ac.be]
> Sent: Wednesday, May 28, 2003 4:30 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Slow computation in for loop
>
>
> Dear members,
>
> I'm using R to do some test computation on a set of parameters of a
> function. This function is included in three for() loops,
> first one for
> replications, and the remaining two cycling through possible
> parameters
> values, like this :
>
> for (k in replicates) {
> data <- sampling from a population
> for (i in param1) {
> for (j in param2) {
> result <- function(i, j, data)
> }
> }
> }
>
> With the 'hardest' set of parameters, a single computation of
> the function
> take about 16s on an old Sun Sparc workstation with 64 Mb RAM
> and don't
> access a single time to disk.
>
> But when I launch the for() loops (which generate 220
> function calls), disk
> gets very sollicitated and the whole process takes as much as 8 to 10
> hours, instead of the expected 1 hour.
>
> What's wrong here ? Is there a thing I don't know about for()
> loops, and a
> way to correct it ?
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>
------------------------------------------------------------------------------
Notice: This e-mail message, together with any attachments, cont... {{dropped}}
More information about the R-help
mailing list