Векторизований код: обчислення суми логарифмів
Поширена операція в статистиці — обчислювати суму логймовірностей. Наведений код обчислює суму логарифмів.
# x — це вектор ймовірностей
total <- 0
for(i in seq_along(x))
total <- total + log(x[i])
Однак цей фрагмент коду можна суттєво покращити, використавши векторизований підхід.
Ця вправа є частиною курсу
Ефективне програмування R
Інструкції до вправи
- Знайдіть суму логарифмів для
x, використавши функціїlog()іsum(), спростіть цикл вище. - Збережіть відповідь в об'єкті
log_sum.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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 <- ___