เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การคำนวณผลรวมแต่ละแถว

คอขวดที่สองที่ตรวจพบคือการคำนวณผลรวมของแต่ละแถว

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 = ___
)
แก้ไขและรันโค้ด