Hi slightly better. However it would be nice if you provided some code which works but not the way you want. Loops are not as problematic but often you achieve far better results by avoiding them and using vectorised code.
Still there are some oddities. random values in formula below shall be the same? random(1:500) means arbitrary value from range 1:500? If yes shall be in each cycle different or they could be repeated? What I would do is I make 500x2 random matrix rmat <- matrix(runif(1000), 500,2) and random index rindex <- sample(1:500) 0.4 * velocity + rmat * (pbestsVar - popVar) + rmat * (archiveVar[rindex, ] - popVar) shall result in a 500x2 matrix But I am not sure if it is what you want as you did not provide enough clues. Regards Petr r-help-boun...@r-project.org napsal dne 18.01.2010 10:08:10: > > Hello > > Sorry for the confusion > Here are additional details. > > velocity, popVar, archiveVar,pbestsVar are matrices with dimension of 500 > row, 2 col matrix. > I want to assign new values for each velocity[i,j] using the formula below: > > *0.4 * velocity[i,j] + 1 * randomvalue * (pbestsVar[i,j] - popVar[i,j]) + 1 > * randomvalue * (archiveVar[random(1..500), j] -popVar[i,j]) * > > with each random value different for each i j pair. > > I want to do this without using the double for loops. I read somewhere that > for loops take longer to execute in R. So I want to eliminate them for > improved performance. > > Long time C user and still adjusting to the R structures. > > thanks for your help :) > On Mon, Jan 18, 2010 at 4:28 PM, Petr Pikal [via R] < > ml-node+1016444-458463...@n4.nabble.com<ml-node%2b1016444-458463...@n4.nabble.com> > > wrote: > > > Hi > > > > Definitely not > > > > from first I get > > > > > gBest<-floor(runif(popsize,min=1,max=top)) > > Error in runif(popsize, min = 1, max = top) : object 'popsize' not found > > > > > > > and from second > > > > > for (i in 1:popsize) { > > + for (j in 1:maxvar) { > > + gBest<-sample(top,size=1) > > + velocity[i,j]<<-.4* velocity[i,j] + 1 * runif(1) * (pbestsVar[i,j] - > > + popVar[i,j]) + 1 * runif(1) * (archiveVar[gBest,j] - popVar[i,j]) > > + #velocity[i,j]<-.4* velocity[i,j] + 1 * .3722 * (pbestsVar[i,j] - > > + popVar[i,j]) + 1 * .3722 * (archiveVar[3,j] - popVar[i,j]) > > Error: unexpected ')' in: > > " #velocity[i,j]<-.4* velocity[i,j] + 1 * .3722 * (pbestsVar[i,j] - > > popVar[i,j])" > > > > > > > If you by chance have all data necessary for those codes not to give those > > stupid errors you could transfer their output to different objects and > > check those objects if they are equivalent. > > > > ?all.equal > > > > Regards > > Petr > > > > > > [hidden email]< http://n4.nabble.com/user/SendEmail.jtp?type=node&node=1016444&i=0 > >napsal dne 17.01.2010 08:17:16: > > > > > > > > Hello. > > > > > > I've just started using R and am trying to figure out if the two codes > > > snippets below have the same output > > > > > > gBest<-floor(runif(popsize,min=1,max=top)) > > > velocity[i,j]<<-.4* velocity[i,j] + 1 * runif(1) * (pbestsVar[i,j] - > > > popVar[i,j]) + 1 * runif(1) * (archiveVar[gBest,j] - popVar[i,j]) > > > > > > and > > > > > > for (i in 1:popsize) { > > > for (j in 1:maxvar) { > > > gBest<-sample(top,size=1) > > > velocity[i,j]<<-.4* velocity[i,j] + 1 * runif(1) * > > (pbestsVar[i,j] - > > > popVar[i,j]) + 1 * runif(1) * (archiveVar[gBest,j] - popVar[i,j]) > > > #velocity[i,j]<-.4* velocity[i,j] + 1 * .3722 * (pbestsVar[i,j] > > - > > > popVar[i,j]) + 1 * .3722 * (archiveVar[3,j] - popVar[i,j]) > > > } > > > > > > many thanks > > > > > > > > > -- > > > View this message in context: > > http://n4.nabble.com/For-loops-in-R-tp1015933p1015933.html > > > Sent from the R help mailing list archive at Nabble.com. > > > > > > ______________________________________________ > > > [hidden email]< http://n4.nabble.com/user/SendEmail.jtp?type=node&node=1016444&i=1 > >mailing list > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > PLEASE do read the posting guide > > http://www.R-project.org/posting-guide.html<http://www.r-project.org/ > posting-guide.html> > > > and provide commented, minimal, self-contained, reproducible code. > > > > ______________________________________________ > > [hidden email]< http://n4.nabble.com/user/SendEmail.jtp?type=node&node=1016444&i=2 > >mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > > http://www.R-project.org/posting-guide.html<http://www.r-project.org/ > posting-guide.html> > > and provide commented, minimal, self-contained, reproducible code. > > > > > > ------------------------------ > > View message @ http://n4.nabble.com/For-loops-in-R-tp1015933p1016444.html > > To unsubscribe from For loops in R, click here< (link removed) =>. > > > > > > > > -- > View this message in context: http://n4.nabble.com/For-loops-in-R-tp1015933p1016473.html > Sent from the R help mailing list archive at Nabble.com. > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. ______________________________________________ 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.