从Excel调用R-UDF

我想要在Excel中调用R函数并将结果返回给Excel中的函数(采用Excel-Arguments)。 RExcel似乎不在CRAN(已经),我还没有find一个替代scheme。 有谁知道一个办法来实现这一目标?

一个限制是即使没有Windows Vista的pipe理员权限,该解决scheme也应该可以工作。

编辑:感谢您的评论。 我们已经尝试过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(); debugging器刚刚结束,没有错误或exception。 我们使用R12.15.1(32位),Windows Vista(32位),Visual Studio 2010 Professional和RdotNet 1.5.0。 可能出了什么问题?