Kod wektoryzowany: obliczanie sumy logarytmów
Częstą operacją w statystyce jest obliczanie sumy logarytmów prawdopodobieństw. Poniższy kod wyznacza tę sumę za pomocą pętli.
# x is a vector of probabilities
total <- 0
for(i in seq_along(x))
total <- total + log(x[i])
Ten fragment kodu można jednak znacznie uprościć, korzystając z podejścia wektoryzowanego.
To ćwiczenie jest częścią kursu
Wydajny kod w R
Instrukcje do ćwiczenia
- Oblicz sumę logarytmów wektora
x, używając funkcjilog()isum(), upraszczając powyższą pętlę. - Zapisz wynik w obiekcie
log_sum.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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 <- ___