1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Efektivní kód v R

Connected

cvičení

Měření času – postupné rozrůstání vektoru

Postupné rozrůstání vektoru patří mezi největší hříchy v R – vždy se mu vyhýbej.

Funkce growing() definovaná níže vygeneruje n náhodných čísel ze standardního normálního rozdělení, ale pokaždé přidá jeden prvek a vektor přitom rozroste!

Poznámka: Čísla ze standardního normálního rozdělení jsou čísla náhodně vybraná z normálního rozdělení s průměrem 0 a směrodatnou odchylkou 1.

n <- 30000
# Pomalý kód
growing <- function(n) {
    x <- NULL
    for(i in 1:n)
        x <- c(x, rnorm(1))
    x
}

Pokyny

100 XP

Funkce growing() je již definována v tvém pracovním prostředí.

  • Pomocí funkce system.time() zjisti, jak dlouho trvá vygenerování n = 30000 náhodných čísel ze standardního normálního rozdělení pomocí funkce growing(). Použij trik s <- a výsledek ulož do vektoru s názvem res_grow.