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
}
Toto cvičení je součástí kurzu
Efektivní kód v R
Pokyny k cvičení
Funkce growing() je již definována v tvém pracovním prostředí.
- Pomocí funkce
system.time()zjisti, jak dlouho trvá vygenerovánín = 30000náhodných čísel ze standardního normálního rozdělení pomocí funkcegrowing(). Použij trik s<-a výsledek ulož do vektoru s názvemres_grow.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)