最近由于项目要用到,因此在想办法把R语言用到C++中. 网上查了看到有一个Rcpp的工具.因此在这里总结一下.html
如今能想到的几种在C++中调用R语言的方法以下:c++
1. 使用Rcpp编程
Rcpp的前世此生app
Rcpp简明入门ide
2. 在C++中直接执行R脚本函数url
1. 管道
2. fork/spawn + exec
3. CreateProcess
4 system
Rscript *.R
3. 使用文件交换----即C++输出参数等到一个文档,而后R脚本调用计算后再输出到文档,让C++程序读取
这里面大概存在着时间控制,循环读取,还有R脚本什么时候执行的问题....
以及最后项目是要作一个软件出来, 那么使用文档存储和R调用没有问题吗?
不要作A语言代码修改成B语言代码的无用功。
也不要作用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。
只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其经过文本文件输入输出。
便可很方便地让A、B两种语言之间协调工做。
好比:
A将请求数据写到文件a.txt,写完后更名为aa.txt
B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,更名为bb.txt
A发现bb.txt存在时,读取其内容,读完后删除bb.txt
以上A能够替换为任何一种开发语言或开发环境,B能够替换为任何一种与A不一样的开发语言或开发环境。
除非A或B不支持判断文件是否存在、文件读写和文件改名。
可是谁又能举出不支持判断文件是否存在、文件读写和文件改名的开发语言或开发环境呢?
4. R脚本编译成动态/静态连接,而后嵌入c++中