1. 学ぶ
  2. /
  3. コース
  4. /
  5. Rcpp で R コードを最適化する

Connected

演習

指定した値でベクトルを作成する

ベクトルを先に定義してから後で要素を代入するのではなく、::create() を使うと、1 行のコードでベクトルを作成し、値を指定できます。これは「静的メンバー関数」で、ベクトルの変数に対するメソッドではなく、ベクトル型そのもののメソッドです。create では最大 20 要素まで指定できます(それ以上の長さのベクトルは複数行に分けて書く必要があります)。

次のコードは、円周率、e、無限大を含む数値ベクトル important_numbers を作成します。

NumericVector numbers = NumericVector::create(PI, exp(1), INFINITY);

::create は名前付きベクトルの作成にも使えます。要素に名前を付ける構文は _["name"] = value です。先ほどと同じコードを、今回は要素に名前を付けて示します。

NumericVector numbers = NumericVector::create(_["pi"] = PI, _["e"] = exp(1), _["inf"] = INFINITY);

R と同様に、異なる型の変数を 1 つの変数にまとめたい場合はリストを使います。Rcpp では型名は大文字で始まり、List を使います。

指示

100 XP
  • いくつかのベクトルを作成する関数 create_vectors() の定義を完成させてください。
    • 名前なしの文字ベクトル polygons を、"triangle"、"square"、"pentagon" の順で含むように作成します。
    • 名前付き整数ベクトル mersenne_primes を、3、7、31 の順で含むように作成します。各要素の名前は "first"、"second"、"third" とします。
    • 名前付きリスト both を、polygons と mersenne_primes をこの順で含むように作成します。リスト内の名前もそれぞれ polygons と mersenne_primes とします。