0

我正在 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;
}
4

1 回答 1

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);
}
于 2013-08-01T03:52:20.147 回答