[R] Avoiding FOR loops
Charilaos Skiadas
cskiadas at gmail.com
Mon Jan 7 02:18:20 CET 2008
On Jan 6, 2008, at 7:55 PM, dxc13 wrote:
>
> useR's,
>
> I would like to know if there is a way to avoid using FOR loops to
> perform
> the below calculation.
>
> Consider the following data:
>
snip
> Here, X is a matrix of 3 variables in which each is of size 5 and
> XK are
> some values that correspond to each variable. For each variable, I
> want to
> do:
>
> |Xi - xkj| where i = 1 to 3 and j = 1 to 10
>
That should be i=1 to 5 I take it?
If I understand what you want to do, then the outer function is the key:
lapply(1:3, function(i) { outer(x[,i], xk[,i], "-") } )
This should land you with a list of three 5x10 tables
> It looks as if a double FOR loop would work, but can the apply
> function
> work? Or some other function that is shorter than a FOR loop?
> Thank you, I
> hope this makes sense.
>
> Derek
>
Haris Skiadas
Department of Mathematics and Computer Science
Hanover College
More information about the R-help
mailing list