[R] vectorize an expression
    Robin Hankin 
    rksh at soc.soton.ac.uk
       
    Tue May 25 11:33:04 CEST 2004
    
    
  
Hi guys.  Another thing I cannot vectorize:
I have an array "a", of size 5-by-2, for example, of 5 2D vectors.  I
also have a distance function that computes the distance between two
vectors (usual Euclidean distance is a good example but I have other metrics I
want to use as well).  I want a 5-by-5 array with the [i,j]th element being
  the distance from a[i,] to a[j,]
To Wit:
   a <- matrix(1:10,5,2)
   array <- matrix(NA, 5, 5)
   dist <- function(x1,x2){sqrt(sum(x1-x2)^2)}
   #NONVECTORIZED BIT FOLLOWS
   for(i in 1:5) {
     for(j in 1:5) {
       array[i,j] <- dist(a[i,] , a[j,])
     }
   }
(note that array[i,i]=0 for i=1:5 as expected).
How to vectorize this?
-- 
Robin Hankin
Uncertainty Analyst
Southampton Oceanography Centre
SO14 3ZH
tel +44(0)23-8059-7743
initialDOTsurname at soc.soton.ac.uk (edit in obvious way; spam precaution)
    
    
More information about the R-help
mailing list