用 Rcpp 最佳化 R 程式碼
Romain François
Consulting Datactive, ThinkR
Rcpp 向量類別:
NumericVector 操作 numeric 向量,如 c(1,2,3)IntegerVector 用於 integer,如 1:3LogicalVector 用於 logical,如 c(TRUE, FALSE)CharacterVector 用於字串,如 c("a", "b", "c")另外:
List 表示清單,即任意 R 物件的向量最重要的方法:
x.size() 取得向量 x 的元素數x[i] 取得向量 x 中第 i 個位置的元素C++ 的索引從 0 開始。索引是到第一個位置的位移。
// 向量的第一個元素
x[0]
// 最後一個元素
x[x.size()-1]
R 的索引從 1 開始。
# 第一個
x[1]
# 最後一個
x[length(x)]

// x 來自其他地方(稍待片刻...)
NumericVector x = ... ;
double value = x[0] ;
x[0] = 12.0 ;
// x 來自其他地方(稍待片刻...)
NumericVector x = ... ;
int n = x.size() ;
double value = x[n-1] ;
x[n-1] = 12.0 ;
// x 來自其他地方
NumericVector x = ... ;
int n = x.size() ;
for( int i=0; i<n; i++){
// 操作 x[i]
}
用 Rcpp 最佳化 R 程式碼