Tidstagning – en växande vektor
Att låta en vektor växa element för element är ett av de vanligaste misstagen i R – undvik det alltid.
Funktionen growing() nedan genererar n slumpmässiga standardnormalfördelade tal, men utökar vektorns storlek för varje element som läggs till!
Obs: Standardnormalfördelade tal är tal dragna från en normalfördelning med medelvärde 0 och standardavvikelse 1.
n <- 30000
# Långsam kod
growing <- function(n) {
x <- NULL
for(i in 1:n)
x <- c(x, rnorm(1))
x
}
Den här övningen är en del av kursen
Effektiv R-kod
Övningsinstruktioner
Funktionen growing() är redan definierad i din arbetsmiljö.
- Använd funktionen
system.time()för att mäta hur lång tid det tar att genereran = 30000slumpmässiga standardnormalfördelade tal medgrowing(). Använd<--tricket för att lagra resultatet i en vektor som heterres_grow.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)