ベクターのインデックス指定
C++ でのインデックスは 0 から始まります。つまり、ベクターの先頭からのオフセットとしてインデックスを考えると理解しやすいです。x[0] はオフセット 0、すなわち x の最初の要素を返します。
この演習はコースの一部です
Rcpp で R コードを最適化する
演習の手順
NumericVectorの最初と最後の値の合計を返す関数first_plus_last()の定義を完成させてください。nをxのsize()に設定します。firstをxの最初の要素に設定します。lastをxの最後の要素に設定します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
#include
using namespace Rcpp;
// [[Rcpp::export]]
double first_plus_last(NumericVector x) {
// The size of x
int n = ___;
// The first element of x
double first = ___;
// The last element of x
double last = ___;
return first + last;
}
/*** R
x <- c(6, 28, 496, 8128)
first_plus_last(x)
# Does the function give the same answer as R?
all.equal(first_plus_last(x), x[1] + x[4])
*/