使用 R.NET 从 c# 控制台应用程序中的 r 源文件调用函数

本文关键字:源文件 调用 函数 应用程序 NET 控制台 使用 | 更新日期: 2024-10-25 21:11:07

我正在使用 C# 创建一个控制台应用程序,我必须使用 R.NET 进行一些数据分析。我已经创建了多个我将要使用的 R 函数,并在 RStudio 中测试了它们,一切正常。假设我的源文件有一个名为"delete"的函数,该函数将向量作为参数。

1-现在,我想将包含我的函数的R源文件导入我的控制台应用,以便能够直接从那里调用这些函数。我找到了这个代码:

using RDotNet;
{ ....
REngine engine = REngine.GetInstance();
engine.Evaluate("source('PATH/file.R");
... }

没有任何错误,但我不确定它是否有效。现在,如果我想执行我的函数"删除",那么命令是什么?

2-源文件现在位于我的桌面上,但我希望我的应用程序在任何计算机上运行,那么如何将我的R源文件添加到VS项目以使其可移植?

使用 R.NET 从 c# 控制台应用程序中的 r 源文件调用函数

我遇到了这个问题,经过数小时的搜索,我意识到 C# 不喜欢为 R 文件给出的路径,因为它使用斜杠作为转义键。

一旦我在每个目录前面添加了 4 个反斜杠,以下路径对我有用:

using RDotNet;
using System;
namespace SimpleScriptingTest
{
    class Program
    {
        static void Main(string[] args)
        {            
            REngine.SetEnvironmentVariables();
            REngine engine = REngine.GetInstance();
            engine.Initialize();
            var path = "C:''''Program Files''''R''''RWDir''''HelloWorldTest.R";
            engine.Evaluate("source('" + path + "')");
            Console.ReadLine();
        }
    }
}