vector angle
Prof Brian Ripley wrote:
On Tue, 17 Jul 2001, Laurent Gautier wrote:
Evan Zane Macosko wrote:
Hi everyone, I'm translating into R some programs I worked through in Matlab to calculate the angle between two vectors (very large--like 6200 rows in each vector). In Matlab, I used a series of nested for loops, because I was calculating the angles between many pairs of vectors. I know for loops are not desirable in R code, so I was wondering if anyone could recommend a faster way to complete this task. Also, I have NAs in my vectors--I've had trouble performing various operations on my vectors in R because of these NAs. Any advice on this would be greatly appreciated.
As far as I know, the use of apply (sapply and lapply) would make things run faster than 'for' loops.
Not very much faster in R (and apply itself is basically a for loop). Because for loops were slow in S3, the message seems to have got transferred to S4 and R. Often the best approach is to see if a loop is fast enough, first. (In S-PLUS 5.0 lapply was actually slower than a for loop.)
And I lived all these years in ignorance, thinking I was doing good while I was making things worse..... I haven't look at R introduction manuals for a while now, so may be the following remark is already stated in them. but by the time I started with R, the modern statistics with S-plus was the main reference and being a poooor student at that time, I learned things through the internet. It prooves to be a bad thing, since at that time there was a rumour about these functions being faster than the loops (like the 'map' function is told to be faster than the for loop in Python for example). I just looked at what would get as an answer using a webcrawler, and the rumour seems to be still alive (see http://www.math.yorku.ca/Who/Faculty/Monette/S-news/2531.html , at the bottom of the page, or http://www.usc.edu/isd/doc/statistics/splus/faq/v5/newinv5.shtml ), but I would have followed better was has been told on this list I would have known it was not the case (see http://www.ens.gu.edu.au/robertk/R/help/00a/1999.html). Thanks for pointing out the mistake I made, Laurent -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._