R

Rcpp 套件:結合 R 與 C++ 加速程式執行

Rcpp 是一個可以讓 R 透過 C++ 語言提升執行效能的套件,其使用方式簡單、上手容易,且對於耗時的運算相當有幫助,是一個很實用的套件。

由於 R 屬於高階語言,相較於 C/C++ 這類的低階語言,R 程式的執行速度比較慢,對於較為耗時的運算(例如蒙地卡羅類型的模擬)來說,若只使用單純的 R 語言來處理,時常會遇到計算時間過長的問題。

傳統上運算速度的問題可以使用 R 本身所提供的 C 或 Fortran 語言介面,將程式中耗時的部分以 C 或 Fortran 改寫,然而 R 本身的低階語言介面相當複雜,對於一般人而言不容易使用,通常只有 R 的套件開發者有能力使用這樣的功能。

Rcpp 是後來發展出來的一個套件,它在 R 中提供了一個非常簡單又好用的 C++ 語言介面,讓一般的使用者可以很輕鬆的結合 R 與 C++ 程式,降低程式開發的技術門檻,大幅提高 R 程式的執行速度,近年來 Rcpp 已經成為 R 高效能運算領域非常重要的套件之一。

適合使用 C++ 的問題

C++ 語言雖然執行效率比 R 語言更好,不過並不是每一種問題都適合使用 C++ 來處理,以下是幾種非常適合使用 C++ 來處理的典型問題類型:

  • 無法轉換成向量化的迴圈運算,例如每次迭代都會跟前一次迭代的運算結果有關的迴圈。
  • 遞迴呼叫的函數或是需要大量重複執行的函數,因為在 C++ 中的函數呼叫會比 R 中的函數呼叫更有效率,所以這種狀況也適合以 C++ 改寫。
  • 需要使用 R 所沒有支援的複雜資料結構時,也可以使用 C++ 與其標準函式庫(STL)來實做。

安裝

由於 Rcpp 套件在使用時會需要編譯 C++ 的程式碼,所以除了安裝 R 的 Rcpp 套件之外,還要再安裝系統上的 C++ 編譯器才能正常使用。

安裝 Rtools 工具集

由於在 Windows 系統上通常並不會有安裝 C++ 編譯器,若要使用 Rcpp 套件,必須先安裝 Rtools 這個官方的工具集,而若是在 Linux 系統上的話,請安裝一般的 gcc/g++ 編譯器。

Rtools 工具集裡面包含了編譯 R 套件所需要的各種工具,而我們需要的就是其中的 gcc/g++ 編譯器。

Step 1
請從官方的 CRAN 網站上下載 Rtools 安裝檔。

Step 2
下載時請選擇適合自己 R 版本的 Rtools 安裝檔。

Step 3
下載下來之後,直接執行,進行安裝。首先選擇安裝用語言,選擇 English 即可,按下「OK」。

Step 4
這是 Rtools 工具集的說明資訊,其中最主要的就是 Cygwin 的仿 Linux 環境,請點選「Next」繼續。

Step 5
選擇安裝路徑,點選「Next」繼續。

Step 6
選擇安裝組件,使用預設值即可,點選「Next」繼續。

Step 7
其他設定,使用預設值即可,點選「Next」繼續。

Step 8
檢查安裝設定,確認無誤後,點選「Install」進行安裝。

Step 9
等待安裝過程。

Step 10
安裝完成,點選「Finish」結束。

安裝 Rcpp 套件

R 官方的套件庫就有收錄 Rcpp 套件,直接以 install.packages 安裝即可:

install.packages("Rcpp")

安裝完成後,即可載入使用:

library(Rcpp)

Page: 1 2 3 4 5

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

1 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

2 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

2 年 ago