[R] R 2.3.1 on Mac OSX: apply a function to 'dist()' ?

Hans-Joerg Bibiko
Wed, 05 Jul 2006 13:55:47 -0000

Dear all,

maybe there is someone who has an hint for me.

I have to calculate a distance matrix by using my own function to get
the distance between two rows of my matrix.

The normal way to do this is to use two 'for loops' like

for(i in 1:nrow)
   for(j in i:nrow)
     _my_function(matrix[i,],matrix[j,])

OK. This works, but unfortunately I have a very huge matrix and it
takes hours even on a cpu-cluster.

My question is:

Is there any chance to increase the speed of doing this?
My first idea was to apply my function to 'dist()' like 'outer
(x,y,"fun")'. But up to know there is no implementation for
that(?)
and I don't know whether it would increase the speed.
On the other hand it would be possible to write a C-routine for that,
but I have to use several function to calculate the distance and some
other people who want to use this algorithm aren't familiar with C.

I would be pleased if there are any hints!

Many thanks in advance!

Cheers,

Hans