3

素朴な質問があります:

1) R で C を呼び出したい場合、C コードを書く必要があります。しかし、Rで書かれた関数を自分で呼び出さなければならないことがあります.C関数でその関数を呼び出すことはできますか?

2) 1) が実行可能である場合、R で記述された関数をループに 1000 回繰り返し使用すると、C を使用してこの関数を呼び出してループを実行することで速度が向上しますか?

4

1 に答える 1

5

よく質問を入れてください。簡単に説明します:

  1. はい、できます。R が提供する C ベースの API を使用すると、(非常に多くのことが) 可能ですが、少し面倒ですが、(少なくとも私たちの意見では) Rcppを介して上に置く C++ レイヤーを使用すると、はるかに簡単になります。

  2. それが臨界点です。R コードがボトルネックである場合、C または C++ から呼び出す場合は、どこから呼び出されても関係ないため、ボトルネックのままです。重要なのはその相対速度です。

rcpp-devel リスト (リンクは Rcppページにあります) には、関連する議論がたくさんあります。[rcpp]SO のタグの下にもたくさんあります。

于 2012-11-16T02:31:58.893 に答える