Mã vector hóa: tính log-sum
Một thao tác phổ biến trong thống kê là tính tổng của các log xác suất. Đoạn mã sau tính log-sum (tổng của các log).
# x là một vector xác suất
total <- 0
for(i in seq_along(x))
total <- total + log(x[i])
Tuy nhiên, bạn có thể cải thiện đáng kể đoạn mã này bằng cách dùng mã vector hóa.
Bài tập này là một phần của khóa học
Viết mã R hiệu quả
Hướng dẫn bài tập
- Tìm log-sum của
xbằng các hàmlog()vàsum(), rút gọn vòng lặp ở trên. - Lưu câu trả lời của bạn vào đối tượng
log_sum.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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 <- ___