Code vectorisé : calculer une somme de logarithmes
Une opération courante en statistique consiste à calculer la somme de logarithmes de probabilités. Le code suivant calcule cette somme (la somme des logarithmes).
# x est un vecteur de probabilités
total <- 0
for(i in seq_along(x))
total <- total + log(x[i])
Cependant, ce code peut être nettement amélioré en utilisant du code vectorisé.
Cet exercice fait partie du cours
Écrire du code R efficace
Instructions
- Calculez la somme des logarithmes de
xen utilisant les fonctionslog()etsum(), et simplifiez ainsi la boucle ci-dessus. - Stockez votre réponse dans l’objet
log_sum.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Initial code
n <- 100
total <- 0
x <- runif(n)
for(i in 1:n)
total <- total + log(x[i])
# Rewrite in a single line. Store the result in log_sum
log_sum <- ___