これは簡単な質問だと思いますが、私は Cpp が初めてで、行き詰まっています。
Rcpp を使用して、R で関数を作成しました。
// [[Rcpp::export]]
Rで関数を呼び出すことができ、意図したとおりに機能します。と呼びましょうF1
。
次に、最初の関数を呼び出す別の関数 を作成しF2
ますRcpp
。私は標準の関数呼び出し言語 (つまり、を使用しますF1(arguments))
。.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;
}