RStudio で Rcpp を使用することを目的とした R パッケージのセットアップをいじっていますが、Rcpp 属性で適切に機能させるのに苦労しています。
これがどのように機能するかについての私の理解はかなり薄いですが、私の理解は次のとおりです。
- ソース C++ ファイルでは、Rcpp 属性を追加できます。たとえば、タグ
// [[Rcpp::export]]
はエクスポート用の C++ 関数をマークし、R で使用できるようにします。 - Build the package を実行
Rcpp
すると、適切な C++ コードがファイルRcppExports.cpp
に生成され、ラッパー関数が R ソース ファイルに生成されますRcppExports.R
。
パッケージをビルドするとき、これは (予想どおり) 適切に機能していないようです。Roxygen は、NAMESPACE ファイルを生成するときにこれをうまく処理できません (そのため、無効にしました)。このタグ// [[Rcpp::export]]
は、パッケージの名前空間にエクスポートする関数をマークするのではなく、R にエクスポートする関数をマークするだけのようです。
さらに重要なのは、Rcpp 属性タグ// [[Rcpp::depends()]]
が正しく処理されていないことです。ここのコードを新しいソース ファイルにコピーしてパッケージを再ビルドすると、識別子が宣言されていないことを示すgcc
エラーがRcppExports.cpp
ファイルにスローBigMatrix
され、属性タグ// [[Rcpp::depends(bigmemory)]]
が正しく処理されていないことが示されます。
複数のことが期待どおりに機能しないため、Rcpp 属性タグの理解に欠けているものは何ですか?