CommencezCommencez gratuitement

Mesures de temps — agrandir un vecteur

Agrandir un vecteur est l'un des péchés capitaux en R; il faut toujours éviter cela.

La fonction growing() définie ci-dessous génère n nombres aléatoires selon une loi normale standard, mais elle augmente la taille du vecteur chaque fois qu'un élément est ajouté!

Remarque : Les nombres suivant une normale standard proviennent d'une distribution normale de moyenne 0 et d'écart type 1.

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

Cette activité fait partie du cours

Écrire du code R efficace

Voir le cours

Instructions de l’exercice

La fonction growing() a déjà été définie dans votre espace de travail.

  • À l'aide de la fonction system.time(), calculez le temps nécessaire pour générer n = 30000 nombres aléatoires suivant une normale standard avec la fonction growing(). Utilisez l'astuce avec <- pour stocker le résultat dans un vecteur appelé res_grow.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)
Modifier et exécuter le code