Hi Jan r-help-boun...@r-project.org napsal dne 17.09.2010 12:43:40:
> Hello Petr, > > > but I think this is how your code really works. Did you try it? > > it does, but the R documentation says somewhere: > "Warning: for() loops are used in R code much less often than in > compiled languages. Code that takes a `whole object' view is likely to > be both clearer and faster in R." Yes and no. For loops are not per se slower. AFAIK lapply or apply is only wrapped loop. But especially people coming from modern compiled languages are used to loops and try to use R like C, which usually ends up in doing things which can be done by built in function by for loop. Consider counting numbers from 1 to 100000. x <- 1:100000 # loop > system.time(for(j in 1:100) { + r1<-0 + for (i in 1:100000) r1<-r1+x[i] + }) user system elapsed 15.42 0.01 15.49 # sum > system.time(for(j in 1:100) r2<-sum(as.numeric(x))) user system elapsed 0.16 0.05 0.20 #simple math > system.time(for(j in 1:100) r3<-100000*100001/2) user system elapsed 0 0 0 > > all.equal(r1, r2, r3) [1] TRUE So if you do not care about built in functions and simple math you can use loop but you have to wait. > > So I am wondering in what way the "whole object view" could be applied > to my function. I offered an option to split vectors according to thresholds to list and use only for cycle with three loops instead of performing as many loops as is length of your vector and checking each number n times inside of a loop. If it is quicker depends on how long are your vectors. If you want to profile your functions see ?Rprof Regards Petr > > Best regards, > Jan > > > > The function should work on the nth elements of the two input vectors > > > and put the result into the nth element of the output vector. So it > > > would work like c <- a + b, only instead of '+' there are more complex > > > calculations. > > ______________________________________________ > 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.