НачатьНачать бесплатно

Векторизованный код: вычисление суммы логарифмов

В статистике часто требуется вычислить сумму логарифмов вероятностей. Следующий код решает эту задачу с помощью цикла.

# 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 <- ___
Редактировать и запускать код