Kom igångKom igång gratis

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

Visa kurs

Ö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 generera n = 30000 slumpmässiga standardnormalfördelade tal med growing(). Använd <--tricket för att lagra resultatet i en vektor som heter res_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(___ <- ___)
Redigera och kör kod