~論理演算子~【Statistics with “R”】
Rプログラミング
~論理演算子~【Statistics with “R”】
プログラムを書く上で、「if文」などによる条件分岐が重要ですが、ifをうまく使うには真偽の扱いに慣れておく必要があります。Rでは真を「TRUE」や「T」と表し、偽を「FALSE」や「F」と表します。また、真は計算において数字の1として扱え、偽は0として扱えます。
Rでの真偽の表し方
TRUE | T | 1 |
FALSE | F | 0 |
高校の数学で学ぶように、真偽をうまく扱うには「かつ」「または」「否定」を用います。Rではこれらを「&」「|」「!」を用いて表します。
Rでの「否定・かつ・または」の表し方
Aの否定 | AかつB | AまたはB |
!A | A&B | A|B |
たとえば、否定の記号「!」は以下のように使えます。
!TRUE #TRUEの否定
!FALSE #FALSEの否定
計算結果はこちら。
Aが真、Bが偽のとき「!A」「A&B」「A|B」は以下のようになる。
!A | A&B | A|B |
偽 | 真 | 真 |
真 | 偽 | 真 |
「真は計算において数字の1として扱え、偽は0として扱える」という性質は、以下のような計算を行うことで確かめられる。
TRUE*TRUE #1*1を計算
TRUE*FALSE #1*0を計算
TRUE+TRUE #1+1を計算
TRUE-TRUE #1-1を計算
FALSE+FALSE #0+0を計算
FALSE-FALSE #0-0を計算
計算結果はこちら。
実践的な練習をしてみよう。
w <- 2
x <- 5
y <- 10
Z <- 10
x!=y #「xとyが等しくない」の真偽を返す
x==y #「xとyが等しい」の真偽を返す
(w*x)!=y #「w*xとyが等しくない」の真偽を返す
(w*x)==y #「w*xとyが等しい」の真偽を返す
((w*x)==y)&(x!=y) #「w*xとyが等しい」かつ「xとyが等しくない」の真偽を返す
((w*x)==y)|(x!=y) #「w*xとyが等しい」または「xとyが等しくない」の真偽を返す
このように、括弧を適切に使用することで、複雑な条件式もR上で表現することが出来る。