การคำนวณผลรวมแต่ละแถว
คอขวดที่สองที่ตรวจพบคือการคำนวณผลรวมของแต่ละแถว
total <- apply(d, 1, sum)
ในแบบฝึกหัดก่อนหน้า คุณได้เปลี่ยนออบเจ็กต์พื้นฐานเป็น matrix ซึ่งทำให้การดำเนินการ apply ข้างต้นเร็วขึ้นถึงสามเท่า
ยังมีการปรับปรุงอีกขั้นหนึ่งที่ใช้ได้ นั่นคือแทนที่ apply() ด้วย rowSums()
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียน R Code อย่างมีประสิทธิภาพ
คำแนะนำการฝึกหัด
- เติมโค้ดในฟังก์ชัน
r_sum()โดยใช้rowSums() - ใช้ฟังก์ชัน
microbenchmark()เพื่อเปรียบเทียบเวลาประมวลผลของapp()และr_sum()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Example data
rolls
# Define the previous solution
app <- function(x) {
apply(x, 1, sum)
}
# Define the new solution
r_sum <- function(x) {
___(x)
}
# Compare the methods
microbenchmark(
app_sol = app(rolls),
r_sum_sol = ___
)