ÎncepețiÎncepe gratuit

Măsurarea timpului – extinderea unui vector

Extinderea unui vector este unul dintre cele mai mari păcate în R; evit-o întotdeauna.

Funcția growing() definită mai jos generează n numere aleatoare standard normale, însă mărește dimensiunea vectorului de fiecare dată când se adaugă un element!

Notă: Numerele standard normale sunt numere extrase dintr-o distribuție normală cu media 0 și abaterea standard 1.

n <- 30000
# Cod lent
growing <- function(n) {
    x <- NULL
    for(i in 1:n)
        x <- c(x, rnorm(1))
    x
}

Acest exercițiu face parte din cursul

Scrierea codului R eficient

Vezi cursul

Instrucțiuni pentru exercițiu

Funcția growing() a fost deja definită în spațiul tău de lucru.

  • Folosind funcția system.time(), măsoară cât timp durează generarea a n = 30000 numere aleatoare standard normale cu funcția growing(). Folosește trucul <- pentru a stoca rezultatul într-un vector numit res_grow.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)
Editează și rulează codul