我想在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。什么可能出错?