T や F は使うな

R の講義で、TRUE と FALSE の略として T や F を使うべきではないと習った。TRUE/FALSE は予約語であり、いわばリテラルだが、T/F は単なるグローバル変数なので、

TRUE <- FALSE # エラー
T <- FALSE # 代入できてしまう!
pnorm(0.3, lower.tail=T) # ???

ということが起きてしまうからだそうだ。

この挙動は、?T として出てくるヘルプにもはっきりと書いてあるが、罠だなぁと思う。R の謎仕様が1つ増えた。特に大文字のTは、Time という意味でうっかり使いそうな変数名である。くわばらくわばら。