R 防御式编程
Dr. Colin Gillespie
Jumping Rivers
例如,用 T/F 代替 TRUE/FALSE 的做法
TRUE <- 5
# Error in TRUE <- 5 : invalid (do_set) left-hand side to assignment
设想我们在计算 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!
TRUE 和 FALSE 的习惯T 和 FTRUE,用 isTRUE()isTRUE(T)
[1] TRUE
isTRUE(2)
[1] FALSE
T <- 10
isTRUE(T)
[1] FALSE
R 防御式编程