Tidiga varningssystem

Defensiv R-programmering

Dr. Colin Gillespie

Jumping Rivers

Tidiga varningssystem

  • Undvik problem i möjligaste mån
  • Hantera problem på ett vettigt sätt när de uppstår

Ett exempel: att använda förkortningarna T/F för TRUE/FALSE

Defensiv R-programmering

Problem 1: TRUE och FALSE

  • TRUE och FALSE är specialvärden
  • De går inte att skriva över
TRUE <- 5
# Error in TRUE <- 5 : invalid (do_set) left-hand side to assignment
Defensiv R-programmering

Problem 2: TRUE och FALSE

Anta att vi beräknar ett F-statistikvärde. Det vore naturligt att skriva

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

Men R tolkar positiva tal som TRUE, så

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

F behandlas nu som TRUE!

Defensiv R-programmering
  • Vänja dig vid att använda TRUE och FALSE
    • inte T och F
      • Testa för TRUE med isTRUE()
isTRUE(T)
[1] TRUE
isTRUE(2)
[1] FALSE
T <- 10
isTRUE(T)
[1] FALSE
Defensiv R-programmering

Nu kör vi en övning!

Defensiv R-programmering

Preparing Video For Download...