【问题标题】:How to acess an R project (RTVS) from a C# project in VS 2017 with RDotNet?如何使用 RDotNet 从 VS 2017 中的 C# 项目访问 R 项目 (RTVS)?
【发布时间】:2018-07-19 14:08:55
【问题描述】:

简单地说,我想为一个 R 项目做一个 C# 前端。

详细说明:我想使用我在使用 RDotNet 的 C# 代码中的 R 项目 (RTVS) 中定义的函数,但在 Google 中进行的广泛搜索没有产生任何结果(顺便说一句,似乎连问题都不是问了,所以我知道我可能在这里遇到了“你没有看到明显的”问题......但是,如果是这样,我几个小时都没有看到明显的问题!)。

更具体一点:

  • 我有一个名为 RLab 的 R 项目
  • 在同一个解决方案中,我有一个名为 RFrontEnd 的 C# 项目
  • 在 RFrontEnd 我有使用 RDotNet 执行 R 代码的 C# 方法
  • 在 RLab 中,我有一个名为 Script.R 的 R 文件,其中包含我想在 RFrontEnd 中使用的 R 代码
  • 我想在 RFrontEnd 中使用 rEngine.Evaluate("source('Script.R')"); 之类的东西来访问我在 Script.R 中编写的代码

几点:

  • 我不能简单地在 C# 项目中引用 R 项目
  • 我可以通过指向 R 解决方案中的文件来运行项目,如 rEngine.Evaluate("source('C:\<Project Address Here>\Script.R')");,但这使我的项目依赖于文件系统中 R 文件的特定位置。我知道我可以让这个位置成为我可以放在配置文件中的参数,但必须有一个更优雅的内置解决方案......对吗?
  • 在 RInteractive 窗口中,我可以简单地使用 source('Script.R') 并且我的函数可以正常加载

版本规格:

  • RDotNet 版本为 1.7.0
  • Microsoft R Open 版本为 3.4.4
  • R Tools for Visual Studio 版本为 1.3
  • Visual Studio 版本是 Community 2017

谁能帮帮我?

感谢和欢呼!

【问题讨论】:

    标签: c# r r.net


    【解决方案1】:

    我刚想到您可以将文件链接到项目,因此我可以将指向我的 .R 文件的链接放在我的 C# 项目中,并将它们复制到项目输出中的文件夹中。

    这是通过按住 Alt 键从 R 项目中拖动 .R 文件并将它们放到我的 C# 项目中的某个位置(最好是在正确命名的项目文件夹中),然后转到新链接的 .R 文件的属性和将其设置为复制到项目的输出(这是绝对必要的,因为链接不是真正的文件,并且在构建项目时不会位于预期的文件系统文件夹中,除非文件被标记为在构建时复制) .

    这不是我所期望的优雅解决方案,但它确实将我的 .R 文件放到一个已知的固定位置,即使我必须将我的项目部署到其他地方,所以我可以做类似rEngine.Evaluate("source('R Scripts/Script.R')"); 的事情并得到我的函数已正确设置为在我的 C# 代码中的 R 环境(通过 RDotNet)中运行,同时仍然能够在 R 项目中正确编辑它们,并在那里找到所有语言支持。

    不过,如果有人知道有更好的解决方案,请带来!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 2017-07-04
      • 2017-09-12
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 2017-11-22
      相关资源
      最近更新 更多