ระบบเตือนภัยล่วงหน้า

การเขียน R แบบ Defensive Programming

Dr. Colin Gillespie

Jumping Rivers

ระบบเตือนภัยล่วงหน้า

  • หลีกเลี่ยงปัญหาตั้งแต่ต้น
  • จัดการปัญหาที่เกิดขึ้นอย่างเหมาะสม

ตัวอย่างเช่น การใช้ตัวย่อ T/F แทน TRUE/FALSE

การเขียน R แบบ Defensive Programming

ปัญหาที่ 1: TRUE และ FALSE

  • TRUE และ FALSE เป็นค่าพิเศษ
  • ไม่สามารถกำหนดค่าทับได้
TRUE <- 5
# Error in TRUE <- 5 : invalid (do_set) left-hand side to assignment
การเขียน R แบบ Defensive Programming

ปัญหาที่ 2: TRUE และ FALSE

สมมติว่ากำลังคำนวณค่า F-statistic การตั้งชื่อตัวแปรดังต่อไปนี้ดูสมเหตุสมผล

# df is the F-density function
(F <- df(1, 9, 67))
[1] 0.7798

แต่ R ตีความตัวเลขที่เป็นบวกว่าเป็น TRUE ดังนั้น

if(F) message("Yer aff yer heid!")
Yer aff yer heid!

ขณะนี้ F ถูกตีความเป็น TRUE!

การเขียน R แบบ Defensive Programming
  • ฝึกใช้ TRUE และ FALSE เสมอ
    • ไม่ใช่ T และ F
      • หากต้องการตรวจสอบว่าเป็น TRUE ให้ใช้ isTRUE()
isTRUE(T)
[1] TRUE
isTRUE(2)
[1] FALSE
T <- 10
isTRUE(T)
[1] FALSE
การเขียน R แบบ Defensive Programming

มาฝึกกันเถอะ!

การเขียน R แบบ Defensive Programming

Preparing Video For Download...