如何将不属于任何R包的R函数调用到C ++代码中?我可以通过一个非常简单的例子告诉你我的意思。假设我写了一个R文件
myRfunction <- function(x){
return(x+2)
}
我希望在通用的c ++代码中使用它。所以,我写了像
这样的东西#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
using namespace arma;
using namespace std;
// [[Rcpp::export]]
arma::vec myCppfunction(arma::vec y){
arma::sec results = myRfunction(y); /* Or whatever I have to do to call it! */
return results;
}
有人可以告诉我该怎么做吗?一般程序是什么?谢谢大家。
答案 0 :(得分:2)
实施例。在R:
> timesTwoR <- function(x) 2*x
cpp
文件:
#include <Rcpp.h>
using namespace Rcpp;
Function timesTwoFromR = Environment::global_env()["timesTwoR"];
// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
return timesTwoFromR(x);
}
然后,在R:
> timesTwo(42)
[1] 84
答案 1 :(得分:0)
或者,您可以将R函数作为参数传递给C ++函数,如下所示:
person