On Wed, 28 Jan 2004, "Hüsing, Johannes" wrote: > > From: Prof Brian Ripley [mailto:[EMAIL PROTECTED] > > On Wed, 28 Jan 2004, "Hüsing, Johannes" wrote: > > > ?apply for more info. You'll want to know about apply if > > > you want to avoid loops (which is a good approach). > > > > Unfortunately apply() is a wrapper for a for() loop, so will > > not help much > > (if at all). > > whoops; so is the choice between both a matter of style? Or is > it implementation-specific for R, and not generally true for S?
It is not generally true for S. The case studies in chapter 7 of `S Programming' show that efficient ways are implementation-dependent. In some versions of S-PLUS (e.g. 3.4) apply was much faster and in some (5.0) it was much slower. Using lapply() (which has a C-level loop) is sometimes rather faster in R. In this particular example garbage collection is taking about 50% of time of the pure R solution, so exactly what is done in what order can matter. knn1 is 20-30x faster since it works in place with space allocated just once. -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html