[R] Odp: For loops in R
Petr PIKAL
petr.pikal at precheza.cz
Tue Jan 19 10:29:49 CET 2010
Hi
r-help-bounces at r-project.org napsal dne 19.01.2010 02:32:45:
>
> Hello Petr.
>
> For the random values, I wanted to generate a different random number
for
> each element of my velocity matrix.
>
> So will this do it?
>
> rmat <- matrix(runif(1000), 500,2)
> rmat2 <- matrix(runif(1000), 500,2)
> rindex <- sample(1:500, replace=TRUE) #with repetition
> velocity<-0.4 * velocity + rmat * (pbestsVar - popVar) + rmat2 *
> (archiveVar[rindex,] - popVar)
AFAICS it seems to do what you want. Basically your rmat and rmat2 will
have different numbers from uniform distribution. If you wanted different
distribution of random numbers you need to use differend random number
generator. See ?rnorm.
And repetition means that in your index you can have some rows more times
and some rows never. Again only you know if this is desired behaviour. If
not use replace=FALSE.
>
> Also, do the apply methods perform better than for loops given the same
> function?
> sample:
> apply(x, fun)
> and
> for (i in 1:length(x)) fun(x[i])
In some quite recent R-News (I believe 2009 or 2008) there is an article
about loops. And also R-Inferno by P.Burns is worth reading.
My opinion is that simple cycles and apply functions are more or less
similar. When I want to scan a file and make same plots for each column I
use for cycle and in most other cases I use *apply family. If you have
nested cycles which work correctly in reasonable time why not use them.
But usually vectorised approach can be far quicker and, when you get used
to it, clearer.
Regards
Petr
>
> cheers
> cjmr
>
>
> --
> View this message in context:
http://n4.nabble.com/For-loops-in-R-tp1015933p1017196.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list