如何在C++中调用并将参数传递给R函数

How to call and pass parameter to R function in C++?

本文关键字:参数传递 函数 调用 C++      更新时间:2023-10-16

我正在R中编写一个函数来绘制图形。我需要用C++程序调用这个函数。

R程序(script.R)

genplot<-function(x,y,outfile)
{
   plot(outfile)
   plot(x,y)
   dev.off()
}

C++程序(Run.cpp)

#include <iostream.h>
using namespace std;
int main()
{
   int x[] = (1,2,3,4,5);
   int y[] = (2,3,4,1,3);
   genplot(x,y);    #need to call r function by passing these 2 variables.
   return 0;
}

您可以使用RInside。阅读RInside页面,我带了这个,但我还没有测试它。基本思想是使用Rcpp包装器将数据传递给R,然后将函数求值为字符串。

#include <RInside.h>  
int main(int argc, char *argv[]) {
    RInside R(argc, argv);              // create an embedded R instance 
    int x[] = (1,2,3,4,5);
    int y[] = (2,3,4,1,3);
    R.assign(x,"x");
    R.assign(y,"y");
    R["outfile"] = "output.txt";   
    R.parseEvalQ("genplot(x,y,outfile)");           // eval init string, ignoring returns
    exit(0);
}