Appendix C — R Tips

C.1 TRUEFALSE

R で真を表す TRUE と 偽を表す FALSE は頻繁に利用する。

たとえば、行列を作るときに、byrowTRUE を与えるか、FALSE を与えるかで、結果が変わる。

matrix(1:9, nrow = 3, byrow = FALSE)
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
matrix(1:9, nrow = 3, byrow = TRUE)
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

TRUEFALSE は、それぞれ省略して TF をも書ける。 頻繁に使うので、このような書き方は一見すると便利である。

matrix(1:9, nrow = 3, byrow = F)
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
matrix(1:9, nrow = 3, byrow = T)
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

しかし、省略形を使うべきではない。省略形を使うと、次のような問題が起こりうる。

T <- FALSE
matrix(1:9, nrow = 3, byrow = T)
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

この例では、TFALSE を代入した結果、T が偽になっており、byrow = Tbryow = FALSE として処理されている。

上の書き方では、TTRUE を意図しているのか、それとも FALSE を意図しているのか、見分けるのが困難である。

タイプする文字数が少し増えるが、コードの可読性と保守性が高めるために、TRUEFALSE は常に完全にスペルすべきだ