从Excel调用R-UDF

时间:2013-07-22 13:56:49

标签: r excel interface user-defined-functions r.net

我想在Excel中使用函数(使用Excel-Arguments)调用R-Functions并将结果返回给Excel。 RExcel似乎不再在CRAN上了(我再也没有)了。有谁知道实现这个目标的方法?

一个限制是即使没有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错误。试图理解它,我们去了一个命令行应用程序,只是复制了here(v1.5)中的示例。但是在第engine.Initialize();行,调试器刚刚终止,没有错误或异常。我们使用R12.15.1(32位),Windows Vista(32位),Visual Studio 2010 Professional和RdotNet 1.5.0。什么可能出错?

0 个答案:

没有答案