0
#r "RProvider.dll"
open RProvider
open RProvider.``base``

let add (x: float) (y: float) = 
    let sum = R.sum(x,y)
    sum.Value

VS で「フィールド、コンストラクター、またはメンバー 'Value' が定義されていません」というエラーが表示される

R.sumにベクトルを渡してみました

小さな既存のドキュメントから ( https://github.com/BlueMountainCapital/FSharpRProvider/wiki/How-To ) 何をすべきかわかりません

4

1 に答える 1

1

このR.sum関数は、可変数のパラメーターを取り、それらすべてを合計するため、使用するのが少し醜いようです (したがって、R 型プロバイダーは、期待する引数を推測できません)。

結果を戻すには、いくつかの拡張メソッドが必要です。

open RDotNet 

このような関数を呼び出すには 2 つのオプションがあります。引数を指定するだけで (名前を指定せずに)、次の場合には十分に機能し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

パラメーターの名前を指定したい場合 (ここでは実際には必要ありませんが、他の関数には役立ちます)、R 関数の「名前付きパラメーター」を表す構造を構築して呼び出すことができます。

let nums = namedParams ["x", 2.0; "y", 3.0]
R.sum(nums).AsNumeric() |> Seq.head

パラメータを静的に推論できる関数の場合、状況はより良いことに注意してください。例えば:

R.mean(x=[1;2;3])
于 2013-10-01T18:07:40.960 に答える