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
Instrucțiuni pentru exercițiu
- Completează definiția funcției
seq_cpp(), care primește doi întregi,loșihi, și returnează unIntegerVectorcu numerele dintre ei.- Setează tipul returnat la
IntegerVector. - Creează un nou vector de întregi,
sequence, de dimensiunen. - În interiorul buclei
for, setează al i-lea element al luisequencela valoarealoplusi. - Returnează
sequence.
- Setează tipul returnat la
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))
*/