LoslegenKostenlos loslegen

Folge von ganzen Zahlen

Die Funktionen, die du in den vorherigen Übungen geschrieben hast, haben Berechnungen durchgeführt und dann eine einzelne Zahl zurückgegeben. Du kannst aber auch Funktionen schreiben, die einen Vektor zurückgeben.

Die Syntax zum Erstellen eines Vektortyps ist: Gib den Typ des Vektors an, gefolgt vom Namen der Variablen und der Anzahl der Elemente in Klammern. Um zum Beispiel einen numerischen Vektor namens numbers mit 10 Elementen zu erzeugen, würdest du folgenden Code schreiben.

NumericVector numbers(10);

Diese Übung ist Teil des Kurses

R-Code mit Rcpp optimieren

Kurs anzeigen

Anleitung zur Übung

  • Vervollständige die Definition einer Funktion seq_cpp(), die zwei ganze Zahlen lo und hi annimmt und einen IntegerVector mit den Zahlen zwischen ihnen zurückgibt.
    • Setze den Rückgabetyp auf IntegerVector.
    • Erzeuge einen neuen Integer-Vektor sequence der Größe n.
    • Setze innerhalb der for-Schleife das i-te Element von sequence auf lo plus i.
    • Gib sequence zurück.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

#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))
*/
Code bearbeiten und ausführen