MulaiMulai sekarang secara gratis

Buat vektor dengan nilai yang diberikan

Alih-alih mendefinisikan sebuah vektor lalu mengisinya setelahnya, Anda dapat membuat vektor dan menentukan nilainya dalam satu baris kode menggunakan ::create(). Ini adalah sebuah static member function, yaitu metode milik tipe vektor itu sendiri, bukan metode milik variabel vektor. Anda dapat menentukan hingga 20 elemen menggunakan create. (Untuk vektor yang lebih panjang, Anda harus menggunakan beberapa baris kode.)

Kode berikut membuat vektor numerik, important_numbers, yang berisi pi, e, dan infinity.

NumericVector numbers = NumericVector::create(PI, exp(1), INFINITY);

::create juga dapat digunakan untuk membuat vektor bernama. Sintaks untuk memberi nama elemen adalah _["name"] = value. Berikut kode yang sama, kali ini dengan penamaan elemen.

NumericVector numbers = NumericVector::create(_["pi"] = PI, _["e"] = exp(1), _["inf"] = INFINITY);

Sama seperti di R, jika Anda ingin menggabungkan variabel dengan tipe berbeda ke dalam variabel lain, gunakan list. Dalam Rcpp, tipenya diawali huruf kapital; yaitu List.

Latihan ini adalah bagian dari kursus

Mengoptimalkan Kode R dengan Rcpp

Lihat Kursus

Petunjuk latihan

  • Lengkapi definisi fungsi create_vectors() yang membuat beberapa vektor.
    • Buat vektor karakter tanpa nama, polygons, yang berisi nilai "triangle", "square", dan "pentagon", dalam urutan tersebut.
    • Buat vektor integer bernama, mersenne_primes, yang berisi nilai 3, 7, dan 31, dalam urutan tersebut. Namanya harus "first", "second", dan "third".
    • Buat list bernama, both, yang berisi polygons dan mersenne_primes, dalam urutan tersebut. Namanya juga harus polygons dan mersenne_primes.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

#include 
using namespace Rcpp;

// [[Rcpp::export]]
List create_vectors() {
  // Create an unnamed character vector
  CharacterVector polygons = CharacterVector::___("___", "___", "___");
  // Create a named integer vector
  IntegerVector mersenne_primes = ___(_["___"] = ___, ___, ___);
  // Create a named list
  List both = ___(___, ___);
  return both;
}

/*** R
create_vectors()
*/
Edit dan Jalankan Kode