Sekvens av heltal
Funktionerna du skrev i tidigare övningar utförde beräkningar och returnerade ett enstaka tal. Du kan också skriva funktioner som returnerar en vektor.
Syntaxen för att skapa en vektortyp är att ange vektorns typ följt av variabelns namn och sedan antalet element i vektorn inom parentes. För att till exempel skapa en numerisk vektor med namnet numbers som innehåller 10 element skriver du följande.
NumericVector numbers(10);
Den här övningen är en del av kursen
Optimera R-kod med Rcpp
Övningsinstruktioner
- Slutför definitionen av funktionen
seq_cpp(), som tar två heltalloochhioch returnerar enIntegerVectormed talen däremellan.- Ange returtypen till
IntegerVector. - Skapa en ny heltalsvektor,
sequence, med storlekenn. - Inuti
for-slingan, sätt det i:te elementet isequencetillloplusi. - Returnera
sequence.
- Ange returtypen till
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
#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))
*/