Download - Tokyo.R 白熱教室「これからのRcppの話をしよう」
![Page 1: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/1.jpg)
Tokyo. 白熱教室 「これからのRcppの話をしよう」
第29回 勉強会@東京(#TokyoR)
@teramonagi
![Page 2: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/2.jpg)
2
Rcpp て何?
![Page 3: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/3.jpg)
Rcppって?
3 (出所)CRAN・Rcppパッケージのサイトより
![Page 4: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/4.jpg)
Rcppって?
4 (出所)CRAN・Rcppパッケージのサイトより
R言語の中で C++が使える
![Page 5: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/5.jpg)
どのくらい 凄いのか?
5
![Page 6: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/6.jpg)
魔・獣・召・喚 6 (出所)DeNA・神撃のバハムート・オフィシャルサイトより
![Page 7: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/7.jpg)
1:R言語&C++(C言語) の昔の連携法
7
![Page 8: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/8.jpg)
グワーッ!!! 8
![Page 9: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/9.jpg)
.C・.Callという2つの方法 • .C関数による呼び出し
–生のCで書かんといかん –R側で関数を呼ぶのがとても手間
• .Call関数による呼び出し – (R側の)メモリ管理を自分でしないといけない –SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP
• 共通 –ShellからR CMD SHLIBで共有ライブラリ化&
dyn.load関数でR側にロード
9
![Page 10: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/10.jpg)
コード・サンプル(.Call版)
10 (出所)第7回R勉強会@東京「RとC/C++の連携」 written by @sfchaos
![Page 11: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/11.jpg)
くわしくはこちら
11 (出所)第7回R勉強会@東京「RとC/C++の連携」 written by @sfchaos
![Page 12: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/12.jpg)
幾人もの勇者が帰らぬ人となった
12
![Page 13: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/13.jpg)
2:Rcppの今
13
![Page 14: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/14.jpg)
♥♥Heaven♥♥ 14
![Page 15: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/15.jpg)
インストールのお話
• 本資料の対象OS:windows 7 64bit
–Mac:Xcode, gfortranあたり入れとけ
–Linux: r-base-dev or 開発系入れとけ
• 要するにC++コンパイラが必要
• わかんなかったら
–「Frequently Asked Questions about Rcpp」(PDF)
–Stackoverflowを「Rcpp」+関連用語検索
15
![Page 16: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/16.jpg)
Rを入れます
16 (出所)CRAN
![Page 17: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/17.jpg)
Rtoolsを入れます
17
(出所)CRAN、C++コンパイラ+linuxコマンド少々が入る。デフォルトのインストール先でOK、インストール済みのRのバージョンをcompatibilityに合わせる。C:¥Rtools¥binとC:¥Rtools¥gcc-ver¥binにはパスを通しておいた方が良い(今回の例では不要。ただしinlineパッケージを使う際には必要となる。よくpythonのパスと競合する点に注意)
![Page 18: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/18.jpg)
Rstudioもいれます
18 (出所)RStudio、Recommendされた版で良いかと。インストール先もデフォルトでOK
![Page 19: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/19.jpg)
Rstudioを起動してC++書きます
19
![Page 20: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/20.jpg)
C++のコード(fibCpp.cpp)
20
![Page 21: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/21.jpg)
Rのコード(script.R)
21 ※ここではfibCpp.cppはこのスクリプトと同じフォルダに保存してあるとする
![Page 22: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/22.jpg)
計算を実行して速度比較
22
3000倍高速…!?!?
![Page 23: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/23.jpg)
23
![Page 24: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/24.jpg)
これからの Rcppの話をしよう 24
![Page 25: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/25.jpg)
Rcppついに書籍化
25 (出所)Amazon.com
![Page 26: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/26.jpg)
JSSにRcppEigen掲載
26 (出所)Jounal of Statistical Software
![Page 27: Tokyo.R 白熱教室「これからのRcppの話をしよう」](https://reader036.vdocuments.site/reader036/viewer/2022081717/54b7aecd4a795993718b4a39/html5/thumbnails/27.jpg)
Rcppのこれからの活躍にご期待ください
27