This question already has an answer here:
Call a function from c++ via environment Rcpp
(1个答案)
3年前关闭。
如何在C++代码中调用不属于任何R包的R函数?我可以通过一个非常实际的例子来说明我的意思。假设我写了一个R文件
我想在通用C++代码中使用它。所以,我写类似
有人可以告诉我该怎么做吗?一般程序是什么?谢谢你们。
然后,在R中:
(1个答案)
3年前关闭。
如何在C++代码中调用不属于任何R包的R函数?我可以通过一个非常实际的例子来说明我的意思。假设我写了一个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;
}
有人可以告诉我该怎么做吗?一般程序是什么?谢谢你们。
最佳答案
例。在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
关于c++ - Rcpp:从全局环境中调用R函数并在C++代码中使用它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47284213/
10-16 04:53