ComenzarEmpieza gratis

Secuencia de enteros

Las funciones que escribiste en ejercicios anteriores hacían cálculos y devolvían un único número. También puedes escribir funciones que devuelvan un vector.

La sintaxis para crear un vector consiste en especificar el tipo de vector seguido del nombre de la variable y, entre paréntesis, el número de elementos. Por ejemplo, para crear un vector numérico llamado numbers con 10 elementos, el código sería el siguiente.

NumericVector numbers(10);

Este ejercicio forma parte del curso

Optimizar código de R con Rcpp

Ver curso

Instrucciones del ejercicio

  • Completa la definición de una función, seq_cpp(), que reciba dos enteros lo y hi y devuelva un IntegerVector con los números entre ambos.
    • Establece el tipo de retorno como IntegerVector.
    • Crea un nuevo vector de enteros, sequence, de tamaño n.
    • Dentro del bucle for, asigna al elemento i-ésimo de sequence el valor lo más i.
    • Devuelve sequence.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

#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))
*/
Editar y ejecutar código