Cod vectorizat: calculul unei sume logaritmice
O operație frecventă în statistică este calculul sumei logaritmilor unor probabilități. Codul de mai jos calculează suma logaritmică (suma valorilor log).
# x is a vector of probabilities
total <- 0
for(i in seq_along(x))
total <- total + log(x[i])
Totuși, acest cod poate fi îmbunătățit semnificativ prin utilizarea codului vectorizat.
Acest exercițiu face parte din cursul
Scrierea codului R eficient
Instrucțiuni pentru exercițiu
- Calculează suma logaritmică a lui
xfolosind funcțiilelog()șisum(), simplificând bucla de mai sus. - Stochează rezultatul în obiectul
log_sum.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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 <- ___