開始使用免費開始

向量化程式碼:計算對數總和

在統計中,一個常見的操作是計算機率的對數總和。以下程式碼會計算對數總和(也就是各元素取對數後再相加)。

# x 是一個機率向量
total <- 0
for(i in seq_along(x)) 
    total <- total + log(x[i])

不過,這段程式可以用向量化的寫法大幅改進效能。

本練習屬於課程

撰寫高效 R 程式碼

檢視課程

練習說明

  • 使用 log()sum() 函式來求出 x 的對數總和,將上面的迴圈簡化。
  • 把答案存到物件 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 <- ___
編輯並執行程式碼