Zacznij terazZacznij za darmo

Sekwencja liczb całkowitych

Funkcje napisane w poprzednich ćwiczeniach wykonywały obliczenia i zwracały pojedynczą liczbę. Możesz też pisać funkcje, które zwracają wektor.

Aby utworzyć wektor określonego typu, podaj typ wektora, następnie nazwę zmiennej, a na końcu – w nawiasach – liczbę elementów. Na przykład, aby utworzyć wektor liczbowy numbers zawierający 10 elementów, użyj poniższego kodu.

NumericVector numbers(10);

To ćwiczenie jest częścią kursu

Optymalizacja kodu R za pomocą Rcpp

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzupełnij definicję funkcji seq_cpp(), która przyjmuje dwie liczby całkowite lo i hi i zwraca IntegerVector z liczbami z tego zakresu.
    • Ustaw typ zwracany na IntegerVector.
    • Utwórz nowy wektor liczb całkowitych sequence o rozmiarze n.
    • Wewnątrz pętli for przypisz i-temu elementowi sequence wartość lo plus i.
    • Zwróć sequence.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

#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))
*/
Edytuj i uruchom kod