BaşlayınÜcretsiz başlayın

Tamsayı dizisi

Önceki egzersizlerde yazdığın fonksiyonlar hesaplamalar yapıp tek bir sayı döndürüyordu. Bir vektör döndüren fonksiyonlar da yazabilirsin.

Bir vektör türü oluşturmanın söz dizimi, önce vektörün türünü, sonra değişken adını, ardından parantez içinde vektördeki eleman sayısını belirtmektir. Örneğin, 10 eleman içeren numbers adlı sayısal bir vektör oluşturmak için kod şöyle olur.

NumericVector numbers(10);

Bu egzersiz, kursun bir parçasıdır

Rcpp ile R Kodunu Optimize Etme

Kursa Göz Atın

Egzersiz talimatları

  • İki tamsayı lo ve hi alan ve aralarındaki sayılardan oluşan bir IntegerVector döndüren seq_cpp() fonksiyonunun tanımını tamamla.
    • Dönüş türünü IntegerVector olarak ayarla.
    • Boyutu n olan yeni bir tamsayı vektörü sequence oluştur.
    • for döngüsünün içinde, sequence'ün i. elemanını lo artı i olacak şekilde ayarla.
    • sequence'ü döndür.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

#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))
*/
Kodu Düzenle ve Çalıştır