ÎncepețiÎncepe gratuit

Secvență de numere întregi

Funcțiile pe care le-ai scris în exercițiile anterioare efectuau calcule și returnau un singur număr. Poți scrie însă și funcții care returnează un vector.

Sintaxa pentru crearea unui tip vector presupune să specifici tipul vectorului, urmat de numele variabilei și de numărul de elemente din vector, între paranteze. De exemplu, pentru a crea un vector numeric numit numbers, care conține 10 elemente, codul arată astfel.

NumericVector numbers(10);

Acest exercițiu face parte din cursul

Optimizarea codului R cu Rcpp

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează definiția funcției seq_cpp(), care primește doi întregi, lo și hi, și returnează un IntegerVector cu numerele dintre ei.
    • Setează tipul returnat la IntegerVector.
    • Creează un nou vector de întregi, sequence, de dimensiune n.
    • În interiorul buclei for, setează al i-lea element al lui sequence la valoarea lo plus i.
    • Returnează sequence.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

#include 
using namespace Rcpp;

// Set the return type to IntegerVector
// [[Rcpp::export]]
___ seq_cpp(int lo, int hi) {
  int n = hi - lo + 1;
    
  // Create a new integer vector, sequence, of size n
  ___;
    
  for(int i = 0; i < n; i++) {
    // Set the ith element of sequence to lo plus i
    ___;
  }
  
  return ___;
}

/*** R
lo <- -2
hi <- 5
seq_cpp(lo, hi)
# Does it give the same answer as R's seq() function?
all.equal(seq_cpp(lo, hi), seq(lo, hi))
*/
Editează și rulează codul