[R] newbie:looking for an efficient way to compute distance vector

papagenic nabble at dejademain.com
Wed Jan 23 17:32:11 CET 2008


dear experts,

I am new to R and am trying to compute a vector y from  a vector x where :
y[i] = sign(x[j]-x[i])*(j-i)  with j the first index after i where
abs(x[j]-x[i]) > to a given step
y[i] is 0 if there is no such j

I can write this in R as follows
for(i in 1:length(x)) {
   y[i]=0
   for(j in i:length(x)) {
      if (abs(x[j]-x[i]) > step) {
         y[i]=sign(x[j]-x[i])*(j-i)
         break;
      }
   }
}

but I wonder if there is a more efficient way to write this. I understand
explicit looping can often be avoided in R using vector notation.

Thanks for your help
-- 
View this message in context: http://www.nabble.com/newbie%3Alooking-for-an-efficient-way-to-compute-distance-vector-tp15045583p15045583.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list