Rcppレファレンスサイトで使えるC/C++関数を見つける

  • Rcppを使って、乱数を作る話を書いた(こちら)
library(Rcpp)
library(inline)
src<-'
RNGScope z;
int n=as<int>(N);
double m=as<double>(M);
return rexp(n, m);
'
fx.rexp <- cxxfunction(signature(N="integer",M="numeric"),src,plugin="Rcpp")
  • 上記のsrc <- '...'で"rexp(n,m)"という処理をしている
  • これはC++の中のこと
  • ただし、こういう風に(Rユーザにも)わかりやすい記載をしておいて、cxxfunction()関数が、よしなに、C++化してくれている
  • さて、このrexp()という関数はどこにあるのか
  • こちらにRcppの諸ソースの相互関係レファレンスがある
    • 横長の大きな図だが…

http://dirk.eddelbuettel.com/code/rcpp/html/runif_8h__dep__incl.png

  • それを参考に自分のPCのどこにあるかを探すと…(Windows7でRをダウンロードしてデフォルトで置き、Rcppパッケージもinstall.packages()コマンドでとってきた場合には、以下に示すようなところにあることがわかる
C:\Users\UserName\Documents\R\win-library\2.14\Rcpp\include\Rcpp\stats\random
  • このように、Rcppが置いているC(C++)の関数は、使ってもよい、とこういうことらしい