if 構文、if else 構文、if else if 構文の覚書。
If 構文
iF 構文は、他の反復 構文と同じく、
if (条件){処理}
で表す。
例1:rnorm の標準正規分布で出てきた数値が正の数だったら、"Greater than 1" とプリントする。
"rnorm" は、正規分布の値から無作為に数値を抽出する関数。
rnorm(抽出する数字の数, mean = 平均値, SD = 標準偏差)
という形で使用するが、mean と sd を指定しない場合は mean = 0, sd = a (-1 to 1) の標準正規分布になる。
Rを使った正規分布関連の覚書。 正規分布 (normal distribution) とは 正規分布とは、平均値と最頻値・中央値が一致し、それを軸として左右対称となっている確率分布。 多くの統計的手法において、データが正 …
# 標準正規分布から無作為に1個の数値を抽出
x <- rnorm(1)
# もし出てきた値が正の数(x > 1)だったら、"Greater than 1" とプリント
if(x > 0){
print("Greater than 1")
}
これを何回か実行すると、
1回目 -0.056...、2回目 -0.342...、3回目 -0.998...、4回目 0.746...と出てきた。
で、最初の3回はうんともすんとも言わず、4回目でコンソールに
output
[1] "Greater than 0"
と出力された。
If Else 構文
If 構文だけだと、条件に合わなかった場合に何もアクションが起こらないが、"else" で「それ以外の場合は……」という条件をつけると、FALSE用の処理を行う。
例2:rnorm の標準正規分布で出てきた数値が正の数だったら、"Greater than 0" 、それ以外 (ゼロもしくは負の数) だったら "Less or equal to 0" とプリントする。
# 正の数 (x > 0) なら "Greater than 0, それ以外なら "Less or equal to 0"
x <- rnorm(1) if(x > 0){
print("Greater than 0")
} else{
print("Less or equal to 0")
}
これを実行すると、
output
[1] "Greater than 0"
[1] "Greater than 0"
[1] "Less or equal to 0"
1回目 0.436...、2回目 0.129...、3回目 -0.876...と出てきたので、
1回目 Greater than 0、2回目 Greater than 0、3回目 Less or equal to 0...と出力された。
If Else If 構文
最初の条件がFALSEだった時に、次の条件を続ける事も可能。
例3:rnorm の標準正規分布で出てきた数値が正の数 (x > 0) だったら、"Greater than 0" 、負の数 (x < 0) だったら "Less than to 0" 、それ以外 (x=0) だったら "Equal to 0" とプリントする。
# 正の数 (x > 0) なら "Greater than 0, 負の数 (x < 0) なら "Less than 0", それ以外 (x = 0) なら "Equal to 0"
x <- rnorm(1)
if(x > 0){
print("Greater than 0")
} else if (x < 0){
print("Less than 0")
} else{
print("Equal to 0")
}
これを実行すると、
output
[1] "Greater than 0"
[1] "Less than 0"
[1] "Greater than 0"
Equal to 0になる確率はかなり低いので、これくらいで。