[R] Pass vector as multiple parameters (as in python f(*x))

Carlos Pita carlosjosepita at gmail.com
Sat Jan 26 00:50:13 CET 2013


I want to know if it's possible to pass a vector v=c(x,y,...) to a
function f(x,y,...) so that each vector element corresponds to a
formal argument of the function. For python programmers: f(*v).

Specifically, what I'm trying to achieve is: given a list of
coordinates l=list(c(x1,y1,z1), c(x2,y2,z2),...) I would like to
obtain the corresponding elements in some array A (3-dim in this
case). That is: A[x1,y1,z1], A[x2,y2,z2],....

One way would be to transform l=list(c(x1,y1,z1), c(x2,y2,z2),...) to
l2=list(c(x1,x2,...),c(y1,y2,...),c(z1,z2,...)) and then (if this is
possible at all) execute the equivalent to A[*l2].

Another way would be to lapply function(xyz) { A[*xyz] } to each
coordinate vector in l. In any case I need the f(*v) equivalent.

Please take into account that, despite the 3-dim example, I need to
implement the above to accept n-dim vectors for arbitrary n, so
something like x<-xyz[1], y<-xyz[2], z<-xyz[3] wouldn't fit the bill.

Any other suggested solution would be appreciated.

Best regards

More information about the R-help mailing list