Векторизованный код: вычисление суммы логарифмов
В статистике часто требуется вычислить сумму логарифмов вероятностей. Следующий код решает эту задачу с помощью цикла.
# x is a vector of probabilities
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 <- ___