2017-01-31 3 views
0

エクスポートされたC++関数のR関数を作成するためにroxygen2とRcppを作成する必要はありません。それらを作成するにはRcpp::exportにはを教えてください。私はちょうど.Call - それを直接幸せにするでしょう。Rcpp :: export - R関数ではなくC++インタフェースのみをエクスポートする

私はWriting R Extensionsを経て、そしてRcpp AttributesWriting a package that uses Rcppビネット、(hereなど)SO上roxygen2、複数のスレッドのドキュメントが、私は役に立つ何かを見つけることができませんでした。

答えて

2

あなたの質問を正しく理解していれば、「スタブ関数を作成したくない場合は、[[Rcpp::export]]タグをそこに入れないでください」というのは簡単です。

また、roxygen2は、ドキュメントのために、compileAttributes()関数がエクスポートする機能と混同します。

RとC++の間にインターフェイスを作成することは、後者のみです。余裕のあるところでは、で、無料の例外処理とRNG設定が必要です。しかし、ねえ、もしあなたがむしろやりたいのであれば、それはと書かれています。

+0

私は '[[Rcpp :: export]]'が必要だと思っていたので、RcppはRオブジェクトをC++に適切に変換します。 'NumericVector foo(NumericVectorr x){return x + 1;}のようなものを直接呼び出すことはできますか? } '' .Call'を使ってエクスポートせずに? – Tim

+0

あなたはいくつかの問題を混乱させるようです。変換は、 '[[Rcpp :: export]]'で気をつけて 'compileAttributes()'によって行われた変換ではなく、パッケージ内のC++コードによって行われます。 Rcppアトリビュートのほとんどは、以前は何のパッケージ(インライン)(https://cran.r-project.org/package=inline)を拡張しているか(むしろ参考になる!!)グルーコードを追加するだけです。あなたはこれらを使用することを余儀なくされていませんが、他の人と同じように、これらの利点があなたに強要されると思われます。たぶんあなたの質問をはっきりさせることができます。 –

+0

そして/または他のパッケージでは_look_だけです。現在、CRANには900を超えています。多くは、エクスポートタグなしでC++で内部ヘルパー関数を持っています。おかげさまで –

関連する問題