我猜这是一个简单的问题,但我是Cpp的新手,我被卡住了。
我在R中创建了一个函数,使用Rcpp和:
// [[Rcpp::export]]
我可以调用R中的函数,它可以按预期工作。我们称之为 F1
。
接下来,我想创建另一个函数, F2
,使用 Rcpp
它调用第一个函数。我使用标准函数调用语言(即, F1(arguments))
,当我使用时,它通过R编译好 sourceCpp()
。
但是当我试着打电话的时候 F2
在R中,我得到:
.Primitive中出错(“。Call”)(
和
缺少F2
首先 .cpp
文件包含
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
double F1(NumericVector a) {
int n = a.size();
double result=0; // create output vector
double ss = 0;
for(int i = 0; i < n; ++i) {
ss += pow(a[i],2);
}
result = ss;
return result;
}
以下是另一个.cpp文件。
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
double F2(NumericVector a) {
double result=0;
result = F1(a);
return result;
}