Vektoriserad kod: beräkna en log-summa
En vanlig operation inom statistik är att beräkna summan av log-sannolikheter. Följande kod beräknar log-summan (summan av logaritmerna).
# x is a vector of probabilities
total <- 0
for(i in seq_along(x))
total <- total + log(x[i])
Den här koden kan förbättras avsevärt med hjälp av vektoriserad kod.
Den här övningen är en del av kursen
Effektiv R-kod
Övningsinstruktioner
- Beräkna log-summan av
xmed funktionernalog()ochsum(), och förenkla slingan ovan. - Spara resultatet i objektet
log_sum.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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 <- ___