2013年4月13日 星期六

Rcpp 套件與C++應用


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/Rcpp
Rstudio http://www.rstudio.com/ide/docs/advanced/using_rcpp
Eddelbuettel, D. http://dirk.eddelbuettel.com/code/rcpp.html

2013年4月5日 星期五

R-3.0.0 下載


1. R 軟體已於 2013年4月3日 提供 R-3.0.0 下載. 直接按右側 快速連結 \ R-x.x.x Wndows 下載 即可下載  R-3.0.0 Windows 版.

2. R 的安裝一般可以使用預設目錄 C:\Program Files\R\R-3.0.0, 如果須配合使用其他套件, 例如: Rcpp 套件, 則安裝目錄中不可包括空白符號, 例如: C:\R\R-3.0.0

3. 利用 RStudio 執行 R-3.0.0. 版本時, 記得安裝最新版本的 RStudio

ps:

1. R-3.0.0 已經支援數值索引值(numeric index values)達到 2^31 以上.
    參考以下之https://taichimd.us/mediawiki/index.php/R#Handling_length_2.5E31_and_more_in_R_3.0.0 (by MC LI).

2. 參考 pdf  (by MC LI)說明.

感謝吾弟 MC LI 的協助與說明 ^_^