Aan de slagGa gratis aan de slag

Reeks gehele getallen

De functies die je in eerdere oefeningen schreef, voerden berekeningen uit en gaven één getal terug. Je kunt ook functies schrijven die een vector teruggeven.

De syntaxis om een vector te maken is: geef eerst het type van de vector op, gevolgd door de naam van de variabele, gevolgd door het aantal elementen in de vector tussen haakjes. Om bijvoorbeeld een numerieke vector numbers met 10 elementen te maken, gebruik je de volgende code.

NumericVector numbers(10);

Deze oefening maakt deel uit van de cursus

R-code optimaliseren met Rcpp

Cursus bekijken

Oefeninstructies

  • Maak de definitie af van een functie seq_cpp() die twee gehele getallen lo en hi krijgt en een IntegerVector teruggeeft met de getallen daartussen.
    • Stel het geretourneerde type in op IntegerVector.
    • Maak een nieuwe integervector sequence met grootte n.
    • Stel binnen de for-lus het ide element van sequence in op lo plus i.
    • Retourneer sequence.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

#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 bewerken en uitvoeren