C# 在R.Net中的脚本内调用用户定义的函数
我在使用R.Net调用自己的R函数时遇到问题;我在一些R脚本myScript.R…中有几个用户定义的函数,我想使用R.net调用这些函数 这就是我到目前为止得到的 一个myScript.R文件包含以下几个函数C# 在R.Net中的脚本内调用用户定义的函数,c#,r,r.net,C#,R,R.net,我在使用R.Net调用自己的R函数时遇到问题;我在一些R脚本myScript.R…中有几个用户定义的函数,我想使用R.net调用这些函数 这就是我到目前为止得到的 一个myScript.R文件包含以下几个函数 userDefinedFunctionOne <- function(parameter1, parameter2) { . . . } userDefinedFunctionTwo <- function(parameter1, parameter2, ...) . . .
userDefinedFunctionOne <- function(parameter1, parameter2)
{
.
.
.
}
userDefinedFunctionTwo <- function(parameter1, parameter2, ...)
.
.
.
var dataframe = this.engine.Evaluate(string.Format("dataframe <- userDefinedFunctionOne(parameter1 = {0}, parameter2 = {1})",
value1,
value2)).AsDataFrame();
Function data = engine.Evaluate(@"data <- function(a,b){
c = a %*% b;
return(c);
}").AsFunction();
然后我找到myScript.R文件的源代码
this.engine.Evaluate(@"source('C:/RScripts/myScript.R')");
但是当我这样调用我的函数时
userDefinedFunctionOne <- function(parameter1, parameter2)
{
.
.
.
}
userDefinedFunctionTwo <- function(parameter1, parameter2, ...)
.
.
.
var dataframe = this.engine.Evaluate(string.Format("dataframe <- userDefinedFunctionOne(parameter1 = {0}, parameter2 = {1})",
value1,
value2)).AsDataFrame();
Function data = engine.Evaluate(@"data <- function(a,b){
c = a %*% b;
return(c);
}").AsFunction();
var dataframe=this.engine.Evaluate(string.Format(“dataframe您描述的内容很好,应该可以使用(顺便说一句,谢谢)。我不明白为什么找不到userDefinedFunctionOne
,因为它应该在全局R环境中加载
我在我使用的一个示例应用程序中添加了一些代码:
从您的帖子中派生的代码运行良好,我可以在调试模式下从visual studio中看到预期的数据帧。如果此示例应用程序存在问题,您是否可以尝试并报告它
示例应用程序使用最新的NuGet包(编写时为1.6.5),但是
考虑到这些方法,您似乎正在使用最新版本的R.NET,我不希望版本成为问题的原因。问题在于,在获取REngine实例this.engine=REngine.GetInstance()之前,我没有调用REngine.SetEnvironmentVariables();
我在示例中看到了这一点,添加了这一行,现在可以使用了,谢谢