调用rnet脚本中的用户定义函数
本文关键字:用户 定义 函数 rnet 脚本 调用 | 更新日期: 2023-09-27 18:09:55
我在使用。net调用我自己的R函数时遇到了麻烦;我有几个用户定义的函数在一些R脚本myScript。R,…,我想用r。net
调用这个函数。这是我目前得到的
myScript之一。R文件包含如下函数
userDefinedFunctionOne <- function(parameter1, parameter2)
{
.
.
.
}
userDefinedFunctionTwo <- function(parameter1, parameter2, ...)
.
.
.
和使用。net,在我的类的构造函数中,我创建了一个REngine类
的实例private REngine engine;
public MyClass()
{
this.engine = REngine.GetInstance();
}
,然后我源myScript。R文件
this.engine.Evaluate(@"source('C:/RScripts/myScript.R')");
但是当我像这样调用函数时
var dataframe = this.engine.Evaluate(string.Format("dataframe <- userDefinedFunctionOne(parameter1 = {0}, parameter2 = {1})",
value1,
value2)).AsDataFrame();
我得到这个错误
错误:无法找到函数"userDefinedFunctionOne"
我发现在一些例子中,用户函数是这样定义的
Function data = engine.Evaluate(@"data <- function(a,b){
c = a %*% b;
return(c);
}").AsFunction();
,但我想避免它,因为正如我写的,我有几个函数在我的R脚本文件
有没有办法做到这一点,而不重写我的R函数作为字符串??
我将感激任何帮助,由于
你描述的很好,应该可以工作(顺便说一句,很好的帖子,谢谢你)。我不明白为什么没有找到userDefinedFunctionOne
,因为它应该是在全局R环境中加载的。
我在我使用的一个示例应用程序中添加了一些代码:SourceRCode
从你的帖子派生的代码运行得很好,我可以在调试模式下从visual studio看到预期的数据帧。您可以尝试一下并报告这个示例应用程序是否存在问题吗?
示例应用程序使用最新的NuGet包(撰写本文时为1.6.5),但是