Code vectorisé : calculer une somme de logarithmes
En statistique, on calcule souvent la somme de probabilités en logarithmes. Le code suivant calcule la somme des logs (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 grandement amélioré en utilisant du code vectorisé.
Cette activité fait partie du cours
Écrire du code R efficace
Instructions de l’exercice
- Trouvez la somme des logs de
xen utilisant les fonctionslog()etsum(), et simplifiez la boucle ci-dessus. - Enregistrez votre réponse dans l'objet
log_sum.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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 <- ___