我正在尝试使用RDOTNET软件包集成R和ASP.NET(我正在使用VS 2013)
我的意图是使用R和SQL Server(SQL Server 2012 Express)的数据生成图形并显示在网页中。第一步,我在Console / Windows应用程序中运行了一个示例R脚本,这很好。但是当在ASP.NET中尝试相同的代码时,出现错误:
t.test(group1,group2)中的错误:找不到函数“ t.test”
代码:
REngine.SetEnvironmentVariables();
REngine engine = REngine.GetInstance();
NumericVector group1 = engine.CreateNumericVector(new double[] { 30.02, 29.99, 30.11, 29.97, 30.01, 29.99 });
engine.SetSymbol("group1", group1);
NumericVector group2 = engine.Evaluate("group2 <- c(29.89, 29.93, 29.72, 29.98, 30.02, 29.98)").AsNumeric();
GenericVector testResult = engine.Evaluate("t.test(group1, group2)").AsList();
double p = testResult["p.value"].AsNumeric().First();
MessageBox.Show(string.Format("P-value = {0:0.000}", p));
engine.Dispose();
我尝试设置环境变量(如某些博客中所述),但似乎没有一个起作用。
我还在登机(web)示例中尝试了rdotnet,它有时在_engine.Install(GraphicsDevice);
上引发对象引用错误,而在var evaluated = statements.Select(_engine.Evaluate).ToList()
上引发类似错误
编辑:我将IIS_IUSRS的完整权限授予R文件夹。我在使用R-3.4.0版本时遇到了3.5.1的一些问题
编辑2:根据http://jmp75.github.io/rdotnet/tut_asp_dot_net,我用C:\Program Files\R\R-3.4.0\bin\i386
更新了PATH环境变量,现在示例代码开始工作了。但是,入门样本中的ASP.NET样本仍然存在相同的问题(对象引用)。