[R] avoid a loop

David Winsemius dwinsemius at comcast.net
Fri May 29 00:22:09 CEST 2009


On May 28, 2009, at 5:45 PM, KARAVASILIS GEORGE wrote:

> Hello, R users.
> I have the following code:
>
> a=1:10
> b=-3:15
> n=5
> x <- rep(0,n)
> for (i in 1:n) x[i] <- sum( outer(a,b, function(s,t)  abs(a-b-i)==0) )

You don't seem to be doing anything with s and t? Did you mean:

for (i in 1:n) x[i] <- sum( outer(a,b, function(s,t)  abs(s-t-i) == 0) )

>
>
> Can someone tell me if I could avoid the for command?
Perhaps with the guess above:

 > x <- sapply(1:n, function(i) { sum( outer(a,b, function(s,t)   
{abs(s-t-i)==0 } )) } )
 > x
[1] 10 10 10 10  9

>
>
> Thank you in advance.


Does your code actually run in 2,9.0?

(I'm still using using 2.8.1)

If this isn't useful, then perhaps you should tell us what problem you  
are trying to solve.
-- 

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list