[R] {base} ifelse() : 条件式(論理式)の判定結果に基づく値を返す関数

説明

ある論理式の判定結果に基づき返り値を返す。
論理式の判定結果がTRUEであれば引数yesの要素を、FALSEであれば引数falseの要素を返す。

使用法

ifelse(test, yes, no)

引数

test:論理値に変換可能なオブジェクト
yes: test引数の結果がTRUEである場合の返り値
no: test引数の結果がFALSEである場合の返り値

詳細

yes引数あるいはno引数の短すぎる場合(これらの要素数がtest引数の要素数より少ない場合)、yes/no引数の要素はリサイクルして使用される。

yesの値はtestの結果がTRUEの場合のみ、noの値はtestの結果がFALSEの場合のみ評価される。

testの要素が欠損値の場合、返り値も欠損値(NA)となる。

返り値

test引数のオブジェクトと長さと属性(dimensionとclassを含む)の等しいベクトル及び、yes引数あるいはno引数からのデータ値。

if~else…構文との比較

Rでは通常の条件分岐構文はは以下のように書く。
if(test) yes else no

testの要素数が1の場合(1つの条件式のみを判定する場合)、ifelse()関数よりもif~else…構文を使用した方がパフォーマンスに優れている。

従ってifelse()関数を使用を考慮するのは、複数の条件式を連続的に判定するロジックの場合である。

コメント