首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从C#项目中获得一个R项目(RTVS)?

如何从C#项目中获得一个R项目(RTVS)?
EN

Stack Overflow用户
提问于 2018-07-19 14:08:55
回答 1查看 444关注 0票数 0

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

我想使用我在C#代码中使用RDotNet定义的一个R项目中定义的函数,但是在谷歌中的广泛搜索并没有产生任何结果(顺便说一句,这个问题似乎也没有被问到,所以我知道我可能在这里遇到了一个“你没有看到明显的”问题……但是,如果是这样的话,我几个小时都看不到显而易见的东西!)

更具体而言:

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

以下几点:

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

版本规格:

  • RDotNet版本为1.7.0
  • Microsoft开放版本为3.4.4
  • Visual版本的r工具为1.3
  • Visual版本是Community2017

有人能帮我吗?

谢谢,干杯!

EN

回答 1

Stack Overflow用户

发布于 2018-07-19 16:22:41

我突然想到,您可以将文件链接到一个项目,这样我就可以将指向我的.R文件的链接放到我的C#项目中,并将它们复制到项目输出的一个文件夹中。

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

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

尽管如此,如果有一个更好的解决办法,在某人的知识,请带来它!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51424811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档