0

R を C# Web アプリケーションと接続しようとしています。提供されている多くのソリューションを試しましたが、うまくいきませんでした。私が得ているエラーは次のとおりです: HRESULT からの例外: 0x80040013

私が従った手順は次のとおりです。

  1. Windows XP (32 ビット) 用の R 2.15.1 のインストール
  2. R_Scilab_DCOM3.0-1B5をインストール
  3. R/R.15.1/library に rscproxy_1.3-1 パッケージをロード
  4. システム変数のパスを C:/Program Files/R/R.15.1/bin に設定します
  5. 3 つの COM 参照を追加しました - STATCONNECTORCLNTLib、StatConnectorCommonLib、STATCONNECTORSRVLib コード:

プライベート StatConnectorClass _statconnector = 新しい STATCONNECTORSRVLib.StatConnectorClass(); _statconnector.Init("R");--> 行はHRESULT からの例外を示しています: 0x80040013

4

2 に答える 2

5

数年前にCOMメソッドを使用してc#にインターフェースしましたが、バージョンが変わるたびにあなたが言及したのと同様の問題があったため、あきらめました。また、R(D)COM のライセンス スキームは私にはわかりにくく、.NET/COM/R のツアーはコーナーが多すぎます。

私の現在の選択はRserve です。これはよく維持されており、私を失望させたことはありません。C# 用に独自のテスト ベッドを作成しましたが、 RserveCLIの方が完全であるため、それは時代遅れだと考えています。

理論的にはR.NETの方が優れた概念ですが、奇妙な理由により、作成者は R.NET を「安定」と見なしています。これは、主にメモリ管理に多くのバグがあるため、非常に婉曲的です。残念ながら、離陸することはありませんでした。

于 2012-10-13T09:43:01.173 に答える
4

R.NETは、C#からR機能にアクセスするためのはるかに優れた方法だと思います。すべてインプロセスで実行されるため、外部Rプロセスを実行する必要はありません。

NuGetパッケージをインストールすると、バージョン1.5が提供されます。これには、人々が報告したクラッシュのほとんどに対処するために私が行ったいくつかのメモリ管理の修正が組み込まれています。Dieterが指摘しているように、R.NETはF#RProviderを介して広く使用されており、最新バージョンでは非常に安定しています。RProviderには、C#から使用できるR関数のラッパー関数を生成するラッパージェネレーターも付属しています。したがって、たとえば、C#からR.plot(... params ...)としてプロット関数を呼び出すことができます。そして、Intellisenseを取得します。

于 2012-10-17T13:39:42.927 に答える