Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在R.Net中的脚本内调用用户定义的函数_C#_R_R.net - Fatal编程技术网

C# 在R.Net中的脚本内调用用户定义的函数

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, ...) . . .

我在使用R.Net调用自己的R函数时遇到问题;我在一些R脚本myScript.R…中有几个用户定义的函数,我想使用R.net调用这些函数

这就是我到目前为止得到的

一个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();
然后我找到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();
我在示例中看到了这一点,添加了这一行,现在可以使用了,谢谢