Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Slutför definitionen av funktionen seq_cpp(), som tar två heltal lo och hi och returnerar en IntegerVector med talen däremellan.
    • Ange returtypen till IntegerVector.
    • Skapa en ny heltalsvektor, sequence, med storleken n.
    • Inuti for-slingan, sätt det i:te elementet i sequence till lo plus i.
    • Returnera sequence.

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))
*/
Redigera och kör kod