c++ - 保持 Rscript 实例打开?

标签 c++ r

目前我通过以下方式从 C++ 调用 R 脚本:

system("PATH C:\\Program Files\\R\\R-3.0.1\\bin\\x64");
system("RScript CommandTest.R");

CommandTest.R 是我的脚本。

这行得通,但速度很慢,因为我需要一个特定的包,而此方法会在每次调用时加载包。

有没有办法加载一次包,然后让 Rscript 实例保持打开状态,这样我就可以继续调用它而不必每次都重新加载包?

PS:我知道“更好”的方法可能是使用 Rcpp/Rinside,如果有必要,我会沿着这条路走,但我认为值得一问是否有一种简单的方法来做我想做的事情不需要它。

最佳答案

好像是Rserve包就是你要找的。基本上它保持打开一个“服务器”,可以要求它评估表达式。

它具有 Java、C++ 以及一个 R session 与另一个 session 之间的通信的选项。

documentation , 你可能想看看 run.Rserveself.ctrlEval

关于c++ - 保持 Rscript 实例打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22009179/

相关文章:

r - r子集数据集按日期范围跨多年

r - 使用 xlsx 包将数据从 R 插入到 Excel 时出现问题

r - transition_time 带有阴影标记,仅用于一个几何体/层

java - 在 JNA 中分配 WinDef.RECT 结构

c++ - GCC 编译器标志 "-DEVAL"

C++ auto ,不明白如何分配运算符?

R如何在apply中实现if else而不是for循环

c++ - 将十六进制值存储为字符串(Arduino 项目)

c++ - 可变参数模板 - 不完整类型

r - 在 R : RData file size is very large 中的函数中保存单个对象