Системи раннього попередження

Оборонне програмування R

Dr. Colin Gillespie

Jumping Rivers

Системи раннього попередження

  • За можливості уникайте проблем
  • Розвʼязуйте питання вчасно й розумно

Наприклад, використання скорочень T/F замість TRUE/FALSE

Оборонне програмування R

Проблема 1: TRUE і FALSE

  • TRUE і FALSE — це спеціальні значення
  • Ми не можемо їх перевизначити
TRUE <- 5
# Error in TRUE <- 5 : invalid (do_set) left-hand side to assignment
Оборонне програмування R

Проблема 2: TRUE і FALSE

Припустімо, ви обчислюєте F-статистику. Логічно мати

# df — щільність F-розподілу
(F <- df(1, 9, 67))
[1] 0.7798

Але R трактує додатні числа як TRUE, тож

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

F тепер сприймається як TRUE!

Оборонне програмування R
  • Звикайте використовувати TRUE і FALSE
    • не T і F
      • Якщо перевіряєте на TRUE, використовуйте isTRUE()
isTRUE(T)
[1] TRUE
isTRUE(2)
[1] FALSE
T <- 10
isTRUE(T)
[1] FALSE
Оборонне програмування R

Трохи потренуймося

Оборонне програмування R

Preparing Video For Download...