Vektorizovaný kód: výpočet součtu logaritmů
Běžnou operací ve statistice je výpočet součtu logaritmů pravděpodobností. Následující kód tento součet logaritmů vypočítá.
# x is a vector of probabilities
total <- 0
for(i in seq_along(x))
total <- total + log(x[i])
Tento kód ale lze výrazně zlepšit pomocí vektorizovaného přístupu.
Toto cvičení je součástí kurzu
Efektivní kód v R
Pokyny k cvičení
- Pomocí funkcí
log()asum()vypočítej součet logaritmů vektoruxa nahraď tak výše uvedenou smyčku. - Výsledek ulož do objektu
log_sum.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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 <- ___