Get startedGet started for free

Sequence of integers

The functions you wrote in previous exercises performed calculations then returned a single number. You can also write functions that return a vector.

The syntax for creating a vector type is to specify the type of the vector followed by the name of the variable, followed by the number of elements in the vector, in parentheses. For example, to create a numeric vector named numbers, containing 10 elements, the code would be as follows.

NumericVector numbers(10);

This exercise is part of the course

Optimizing R Code with Rcpp

View Course

Exercise instructions

  • Complete the definition for a function, seq_cpp(), that takes two integers lo and hi and returns an IntegerVector of the numbers between them.
    • Set the return type to IntegerVector.
    • Create a new integer vector, sequence, of size n.
    • Inside the for loop, set the ith element of sequence to lo plus i.
    • Return sequence.

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

#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))
*/
Edit and Run Code