2013-08-01 73 views
0

我在R中绘制一个函数来绘制图形。我需要使用C++程序来调用这个函数。如何在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; 
} 
+2

请看使用[RServe](http://www.rforge.net/Rserve/doc.html)。配备C++客户端。 – Aert

+0

@Alert这真的很有用,但没有示例显示如何在C++中使用它。你可以建议或张贴任何相同的例子。 – Manish

回答

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); 
} 
相关问题