2012-01-23 1 views
1

私はアプリケーションで回帰(リニア)を使用する必要があります。私は関数lm()を使用しているときにR.Net.butを使用していますが、 "アプリケーションでエラーが発生しました"というエラーが表示されます。しかし、同じコードが「R」で働いてます私のコードに問題があるか、私はそれ以上のパッケージをインポートする必要があるのですか?...r.netでlm関数を使用するには?

私のコード

private void Form1_Load(object sender, EventArgs e) 
    { 
     REngine.SetDllDirectory(@"C:\Program Files\R\R-2.13.1\bin\i386");    
     REngine engine = REngine.CreateInstance("RDotNet"); 
     engine.Evaluate("WQ<-read.csv('c:\\Documents and Settings\\hardinmvarghese\\Desktop\\reg.csv')"); 
     engine.EagerEvaluate("rst <- lm(V1 ~ V2+V3+V4+V5,WQ)"); 

    } 

いずれかが、これは助けてください知っている場合私...

+0

.Netからそのディレクトリに対する読み取り/書き込み権限がありますか? try catchブロックを使用してチェックしてください – CodingBarfield

+0

コードはどの行に表示されますか? 'REngine'インスタンスは正常に作成されていますか?他のRコマンドを実行できますか? –

答えて

3

.Netからそのディレクトリの読み取り/書き込み権限がありますか? try catchブロックを使用して、例外タイプとメッセージを確認します。たぶん、その何かが間違っているのは、REngineコードです。

private void Form1_Load(object sender, EventArgs e) 
{ 
    try 
    { 
     REngine.SetDllDirectory(@"C:\Program Files\R\R-2.13.1\bin\i386");    
     REngine engine = REngine.CreateInstance("RDotNet"); 
     engine.Evaluate("WQ<-read.csv('c:\\Documents and Settings\\hardinmvarghese\\Desktop\\reg.csv')"); 
     engine.EagerEvaluate("rst <- lm(V1 ~ V2+V3+V4+V5,WQ)"); 
    } 
    catch(Exception ex) 
    { 
     MessageBox.Show(ex.GetType().ToString() + " " + ex.Message); 
    } 

} 
関連する問題