MulaiMulai sekarang secara gratis

Pengukuran waktu - menumbuhkan vektor

Menumbuhkan vektor adalah salah satu dosa besar di R; Anda harus selalu menghindarinya.

Fungsi growing() yang didefinisikan di bawah ini menghasilkan n angka acak bertipe standar normal, tetapi menambah ukuran vektor setiap kali sebuah elemen ditambahkan!

Catatan: Angka standar normal adalah angka yang diambil dari distribusi normal dengan mean 0 dan simpangan baku 1.

n <- 30000
# Slow code
growing <- function(n) {
    x <- NULL
    for(i in 1:n)
        x <- c(x, rnorm(1))
    x
}

Latihan ini adalah bagian dari kursus

Menulis Kode R yang Efisien

Lihat Kursus

Petunjuk latihan

Fungsi growing() sudah didefinisikan di workspace Anda.

  • Dengan menggunakan fungsi system.time(), cari berapa lama waktu yang dibutuhkan untuk menghasilkan n = 30000 angka acak standar normal menggunakan fungsi growing(). Gunakan trik <- untuk menyimpan hasilnya ke dalam sebuah vektor bernama res_grow.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)
Edit dan Jalankan Kode