2

R 関数を呼び出して結果を Excel に返す Excel の関数 (Excel の引数を取る) が必要です。RExcel は (もう) CRAN 上にないようで、私はまだ代替手段を見つけていません。これを達成する方法を知っている人はいますか?

制約の 1 つは、Windows Vista で管理者権限がなくてもソリューションが機能することです。

編集:コメントありがとうございます。R.Net を試しましたが、ほとんど成功しませんでした。私たちは行きました:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ExcelDna.Integration;
using System.Windows.Forms;
using RDotNet;
using RDotNet.NativeLibrary;

public static class MyFunctions
{
    [ExcelFunction(Description = "Test R connection")]
        public static double MyRTest(double x)
        {
            var envPath = Environment.GetEnvironmentVariable("PATH");
            var rBinPath = @"D:\Programme\R\R-2.15.1\bin\i386";
            Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + rBinPath);
            // using (REngine engine = REngine.CreateInstance("RDotNet"))
            // {
            // }

            // REngine rengine = REngine.CreateInstance("RDotNet");
            return (2*x);
        } // End Function


    [ExcelFunction(Description="Multiplies two numbers", Category="Useful functions")]
    public static double MultiplyThem(double x, double y)
    {
        return x * y;
    }
}

関数 MultiplyThem() は Excel で呼び出すことができ、機能します。そのまま、MyRTest も同様です。しかし、コメントアウトされたメソッドのいずれかを使用して R をインスタンス化しようとするとすぐに、Excel で #Value エラーが返されます。それを理解しようとして、コマンド ライン アプリケーションを使用し、ここ(v1.5) から例をコピーしました。ただし、engine.Initialize();エラーまたは例外なしで、デバッガーが終了したばかりの行で。R12.15.1 (32 ビット)、Windows Vista (32 ビット)、Visual Studio 2010 Professional、RdotNet 1.5.0 を使用しています。何がうまくいかなかったのでしょうか?

4

0 に答える 0