โค้ดแบบเวกเตอร์: การคำนวณผลรวมของลอการิทึม
การคำนวณผลรวมของลอการิทึมของความน่าจะเป็น (log-sum) เป็นการดำเนินการที่พบบ่อยในสถิติ โค้ดด้านล่างแสดงวิธีคำนวณค่าดังกล่าว
# x is a vector of probabilities
total <- 0
for(i in seq_along(x))
total <- total + log(x[i])
อย่างไรก็ตาม โค้ดนี้สามารถปรับปรุงให้มีประสิทธิภาพยิ่งขึ้นได้มากด้วยการใช้โค้ดแบบเวกเตอร์
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียน R Code อย่างมีประสิทธิภาพ
คำแนะนำการฝึกหัด
- คำนวณ log-sum ของ
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 <- ___