Rcpp 套件提供 R 與 C++ 函式庫(library) 之間的整合應用。在 R 程式中可直接使用 C++ 語法,以加速 R 的執行效率。
1. 使用 Rcpp 套件之事前準備
使用Rcpp套件之前須配合Rtools程式的使用,Rtools包括gcc編譯器。在R的Windows版本下載網頁中包括Rtools的下載連結, 請選取最新版本 Rtools30.exe。Rtools安裝方式採用選取下一步(next)即可,其中32位元與64位元安裝目錄須保持原設定,不要更改。在「Select Additional Tasks」選項中,請將 □Edit the system PATH與 □Save version number 3.0 in registry二個選項打勾。詳細安裝程序參考以下檔案之附錄說明。https://github.com/rwepa/DataDemo/blob/master/Rcpp-Rtools-tutorial.pdf
Rcpp 執行時配合 R 的安裝目錄且安裝目錄中不可有空白,因此建議 Windows 中預設R安裝目錄為 C:\R\R-2.15.3 較不會有錯誤。
Rcpp-Rtools-tutorial.R
2. Rcpp 套件之使用範例
Rcpp套件使用可區分成二種情形:方法1. 在C++中使用R程式碼,方法2. 在R中`使用C++程式碼。方法2包括cppFunction( ) 方法、sourceCpp( ) 方法。在 R 中使用 Rcpp 時,C++ 矩陣仍採用 x[i, j] 格式, 與原C++ 採用 x[i][j] 略有不同。以下範例比較 cppFunction 方法與傳統 R loop方法,Rcpp執行時間可能差異達 100倍以上(確定是 Rcpp 較快)。程序輸入是 matrix,輸出是scalar 。3. 參考資料
Hadley github https://github.com/hadley/devtools/wiki/RcppRstudio http://www.rstudio.com/ide/docs/advanced/using_rcpp
Eddelbuettel, D. http://dirk.eddelbuettel.com/code/rcpp.html
沒有留言:
張貼留言