2

我想在 Excel 中拥有调用 R-Functions 并将结果返回给 Excel 的函数(采用 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;
    }
}

可以在 Excel 中调用 MultiplyThem() 函数并且它可以工作。照原样,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