Я предполагаю, что это простой вопрос, но я новичок в 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;
}