Sisteme de avertizare timpurie

Programare defensivă în R

Dr. Colin Gillespie

Jumping Rivers

Sisteme de avertizare timpurie

  • Evitați problemele pe cât posibil
  • Gestionați problemele apărute în mod rațional

De exemplu, utilizând scurtăturile T/F în loc de TRUE/FALSE

Programare defensivă în R

Problema 1: TRUE și FALSE

  • TRUE și FALSE sunt valori speciale
  • Nu le putem suprascrie
TRUE <- 5
# Error in TRUE <- 5 : invalid (do_set) left-hand side to assignment
Programare defensivă în R

Problema 2: TRUE și FALSE

Presupunem că calculăm un F-statistic. Ar fi natural să avem

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

Dar R tratează numerele pozitive ca TRUE, deci

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

F este acum tratat ca TRUE!

Programare defensivă în R
  • Obișnuiți-vă să folosiți TRUE și FALSE
    • nu T și F
      • Pentru a testa TRUE, utilizați isTRUE()
isTRUE(T)
[1] TRUE
isTRUE(2)
[1] FALSE
T <- 10
isTRUE(T)
[1] FALSE
Programare defensivă în R

Să exersăm puțin

Programare defensivă în R

Preparing Video For Download...