SteveK - 9 months ago 58

R Question

I would like to define an arbitrary function of an arbitrary number of variables, for example, for 2 variables:

`func2 <- function(time, temp) time + temp`

I'd like to keep variable names that have a meaning in the problem (time and temperature above).

If I have a vector of values for these variables, for example in the 2-d case, c(10, 121), I'd like to apply my function (func2 here) and obtain the result. Conceptually, something like,

`func2(c(10,121))`

becomes

`func2(10,121)`

Is there a simple way to accomplish this, for an arbitrary number of variables?

Thanks

Answer

You could write a helper function to turn a simple vector into parameters with the help of `do.call`

```
splat <- function(f,v) {
do.call(f, as.list(v))
}
splat(func2, c(10,121))
```

Source (Stackoverflow)