Rの基礎 4 比較演算子と条件分岐、繰り返し

Rの基礎4では、比較演算子、論理演算子、条件分岐(if文)、繰り返し文(For文)について説明します。

比較演算子とはその名の通り、2つの値を比較し、論理型(Boolean)を返す演算子を指します。同値であるかどうかを調べる==と異なる値であることを示す!=が最も基本的な演算子で、その他小なり(<、<=)、大なり(>、>=)を示す演算子をよく用います。比較演算子を使用するときを含め、演算には、数字ではないもの(NA、NaN、Inf、NULLなど)は通常使用しませんし、取り除いてから計算する場合も多いと思います。このような数字ではないものの識別のための関数がRには備わっており、NAやNaNなどのデータを簡単に取り除けるようになっています。

複数の比較演算子を合わせて判別したいときには、論理演算子を用います。論理演算子は&と|があり、&は論理積(A&Bなら、AもBもTRUEのときのみTRUE)、|は論理和(A|Bなら、AがTRUE、もしくはBがTRUEならTRUE)を示します。Rでは&&や||も使用しますが、この2つではベクター比較の際に始めの要素(インデックスが1の要素)のみ比較する演算となり、&や|とは挙動が異なります。

条件分岐に関しては、switch文も使えるのですが、実際に使用するのはほぼif文とif else文だけだと思って良いと思います。if文は、if(条件式){Tureのときの処理} else {FALSEのときの処理} の形で書きます(else以降は省略可)。条件を2つ置く場合には、elseの代わりにelse if (条件式)で繋ぐこともできます。if文を短く記載したいときにはifelse文(ifelse(条件式, TRUEのときの返り値, FALSEのときの返り値))もよく用います(tidyverseライブラリのif_elseの方が使い勝手がよいです)。

Rでの繰り返し文としてはほぼfor文以外いらないと思います(whileやrepeatを使うぐらいなら、別の方法を用いたほうがよい)。基本的に for(i in 1:繰り返し回数){繰り返す処理} の形で書きます。Rではfor文の代わりになるもの(ベクターの演算やapply関数など)があるため、for文は使わないほうがよいとされています。しかし、繰り返し処理の中身がわかりやすいので、それほど速度を求めないときにはfor文を使用するのがよいと思います。