0

C# と R を statconnector で接続すると、R の stat ライブラリの基本機能にアクセスできます。しかし、library() をロードすると、その関数を呼び出すことができません。

私が試しているコードは次のとおりです。

rConn.SetSymbol("n1", 20);
rConn.Evaluate("library(dtw)");
rConn.Evaluate("x1<-rnorm(n1)");
rConn.Evaluate("x2<-rnorm(n1)");
rConn.Evaluate("Score<-dtw(x1,x2,keep.internals=TRUE)");

私が得るエラーは、最後の行を実行したときです。つまり、rConn.Evaluate("Score<-dtw(x1,x2,keep.internals=TRUE)");

私が得るエラーは -

There is no connection for this connection ID (Exception from HRESULT: 0x80040004 (OLE_E_NOCONNECTION))
4

2 に答える 2

0

追加情報 10 以上の同時 statconnector インスタンスを呼び出すと、同様のエラーが発生することがわかりました。

値を返すときの .Evaluate 関数は、次のエラーで 10% の計算で失敗します。

There is no connection for this connection ID (Exception from HRESULT: 0x80040004 (OLE_E_NOCONNECTION))   
   at StatConnectorCommonLib.IStatConnector.Evaluate(String bstrExpression)

私が見つけた修正は、結果を R の変数に格納し、.EvaluateNoReturn と .GetSymbol を使用して結果を返すことでした。

StatConnector rConn = new StatConnector();

rConn.Init("R");
rConn.SetSymbol("n1", 20);
rConn.Evaluate ("x1<-rnorm(n1)");
var o = rConn.GetSymbol ("x1");

foreach (double d in o)
    Console.WriteLine(d);

rConn.Close();

ソースと例については、次の記事を ご覧ください。

于 2013-09-30T15:39:21.707 に答える