1. Learn
  2. /
  3. Courses
  4. /
  5. Optimizing R Code with Rcpp

Connected

Exercise

Vytvoření vektoru se zadanými hodnotami

Místo toho, abys nejdřív definoval/a vektor a pak postupně naplnil/a jeho prvky, můžeš vektor vytvořit a rovnou zadat jeho hodnoty na jednom řádku pomocí ::create(). Jde o statickou členskou funkci — tedy metodu samotného typu vektoru, nikoli konkrétní proměnné. Pomocí create lze zadat až 20 prvků. (Pro delší vektory je potřeba použít více řádků kódu.)

Následující kód vytvoří číselný vektor important_numbers obsahující hodnoty pi, e a nekonečno.

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

::create lze použít také k vytváření pojmenovaných vektorů. Syntaxe pro pojmenování prvků je _["name"] = value. Tady je stejný kód, tentokrát s pojmenovanými prvky.

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

Steně jako v R, pokud chceš zkombinovat proměnné různých typů do jedné proměnné, použij seznam. Ve verzi Rcpp se typ píše s velkým písmenem — jde o List.

Instructions

100 XP
  • Dokonči definici funkce create_vectors(), která vytvoří několik vektorů.
    • Vytvoř nepojmenovaný character vektor polygons obsahující hodnoty "triangle", "square" a "pentagon" v tomto pořadí.
    • Vytvoř pojmenovaný integer vektor mersenne_primes obsahující hodnoty 3, 7 a 31 v tomto pořadí. Názvy prvků mají být "first", "second" a "third".
    • Vytvoř pojmenovaný seznam both obsahující polygons a mersenne_primes v tomto pořadí. Názvy prvků mají být také polygons a mersenne_primes.