我开始使用Rcpp框架将C ++函数与R进行集成。
以下集成工作正常:
cppFunction('
double normal_dens( double x )
{
const double SQRT2PI = 2.50662827463;
return( exp(-x*x/2.0)/SQRT2PI );
}
')
接下来我要整合:
cppFunction('
double test( double x ,double a)
{
return( a* normal_dens(x););
}
')
内部cpp编译器抱怨(正确地),函数normal_dens是未知的。最简单的方法是什么?
很多人答案 0 :(得分:3)
这些cppFunction
调用中的每一个都创建一个独立的共享库。他们彼此不了解。
一个简单的替代方法是将所有文件放在同一个文件中:
#include <Rcpp.h>
// [[Rcpp::export]]
double normal_dens( double x ) {
const double SQRT2PI = 2.50662827463;
return( exp(-x*x/2.0)/SQRT2PI );
}
// [[Rcpp::export]]
double test( double x ,double a){
return( a* normal_dens(x););
}
然后在此文件上调用sourceCpp
。然后,您将要学习如何制作包。