Rcpp ile R Kodunu Optimize Etme
Romain François
Consulting Datactive, ThinkR
Rcpp vektör sınıfları:
NumericVector: numeric vektörlerle çalışmak için, ör. c(1,2,3)IntegerVector: integer için, ör. 1:3LogicalVector: logical için, ör. c(TRUE, FALSE)CharacterVector: stringler için, ör. c("a", "b", "c")Ayrıca:
List: listeler için, yani rastgele R nesnelerinden oluşan vektörlerEn önemli yöntemler:
x.size() vektör x'in eleman sayısını verirx[i] vektör x'te i. konumdaki elemanı verirC++'ta indeksleme 0'dan başlar. İndeks, ilk konuma olan ötelemeyi gösterir.
// first element of the vector
x[0]
// last element
x[x.size()-1]
R'de indeksleme 1'den başlar.
# first
x[1]
# last
x[length(x)]

// x comes from somewhere else (patience ...)
NumericVector x = ... ;
double value = x[0] ;
x[0] = 12.0 ;
// x comes from somewhere else (patience ...)
NumericVector x = ... ;
int n = x.size() ;
double value = x[n-1] ;
x[n-1] = 12.0 ;
// x comes from somewhere
NumericVector x = ... ;
int n = x.size() ;
for( int i=0; i<n; i++){
// manipulate x[i]
}
Rcpp ile R Kodunu Optimize Etme