The R.sum
function seems to be a bit uglier to use, because it takes variable number of parameters and sums all of them (so the R type provider cannot infer what arguments it expects).
To get the result back, you'll need some extension methods:
open RDotNet
There are two options for calling such function - you can just give it the arguments (without specifying their names), which works well enough for R.sum
:
// You can pass parameters as an explicit array
R.sum([| 2.0; 3.0 |]).AsNumeric() |> Seq.head
// Or you can use the fact that the function takes 'params' array
R.sum(1.0, 2.0).AsNumeric() |> Seq.head
If you want to specify the name of the parameters (not really needed here, but useful for other function), then you can build a structure representing "named parameters" for an R function and call it:
let nums = namedParams ["x", 2.0; "y", 3.0]
R.sum(nums).AsNumeric() |> Seq.head
Note that the situation is nicer for functions where the parameters can be statically inferred. E.g.:
R.mean(x=[1;2;3])