如何从 c# R.net 调用用户定义的函数(在 .rdata 文件中)

本文关键字:函数 rdata 文件 定义 net 用户 调用 | 更新日期: 2023-09-27 18:37:25

我一方面有一个

用R开发的平台,由许多用于生成报告的用户定义函数组成,使用矩阵和参数作为输入。

在另一个中,我通过c#平台管理我的数据流。

我想做的是从c#调用我的R平台:将Rdata文件中定义的函数调用到我的c#代码(处理我的所有数据矩阵)。

我熟悉RdotNet并使用它来调用用户定义的函数,但这些是在我的c#代码本身中定义的函数,而我需要调用Rdata文件中的函数。

提前谢谢。

如何从 c# R.net 调用用户定义的函数(在 .rdata 文件中)

R.NET 调用的 R 函数不限于从 .NET 中的字符串创建的函数。如果在 R 中定义并保存函数定义:

f <- function() {"Hello World"}
save(f, file='f.RData')

然后在 C# 中,您只需执行类似操作

static void stackoverflow_27924923_2752565 (REngine engine)
{
    engine.Evaluate ("load('~/f.RData')");
    var s = engine.Evaluate ("f()").AsCharacter()[0];
    Console.WriteLine(s);
}