Zamanlamalar - ön ayırma
Önceki egzersizde, vektörü büyütmek yaklaşık 2 saniye sürmüştü.
Peki vektörü önceden ayırdığımızda ne kadar sürer? pre_allocate() fonksiyonu aşağıda tanımlanmıştır.
n <- 30000
# Hızlı kod
pre_allocate <- function(n) {
x <- numeric(n) # Önceden ayır
for(i in 1:n)
x[i] <- rnorm(1)
x
}
Bu egzersiz
Verimli R Kodu Yazma
kursunun bir parçasıdırEgzersiz talimatları
pre_allocate() fonksiyonu çalışma alanında hazır.
system.time()kullanarakpre_allocate(n)çalıştırmanın ne kadar sürdüğünü bul. Sonucures_allocatenesnesinde saklamak için<-hilesini kullan.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Use <- with system.time() to store the result as res_allocate
n <- 30000
system.time(___ <- ___)