条件分岐

特定の条件を満たしたときだけ実行する処理。

if / else

条件式がTRUEの場合、{ }内の処理が実行される。FALSEの場合はelse以下の内容が実行される。

locate <- 'TOKYO'
if (locate == 'YOKOHAMA') {
print('横浜です。')
} else {
print('横浜ではありません。')
}
[1] "横浜ではありません。"
 
locate <- 'YOKOHAMA'
if (locate == 'YOKOHAMA') {
print('横浜です。')
} else {
print('横浜ではありません。')
}
[1] "横浜です。"
 

switch

変数が取る文字列によって、処理を変える。条件式が3つ以上の値を取る場合は、if文よりも可読性が上がることが多い。

使い方

switch(EXPR, …)
引数 内容
EXPR 変数、もしくは文字列。数値が入力された場合は文字列に変換される。
条件に合致した場合に実行される処理。
method <- 'addition'
x <- 5
y <- 7

switch(method
,'addition' = x+y
,'subtraction' = x-y
,'multiplication' = x*y
,'division' = x/y
,print('method is error.')
)
[1] 12

ifを用いても同様のことが出来るが、switch()を使用した方がif文よりも幾分処理速度が速いらしい。

条件によって変数に代入する値を変える

イコールの右辺を()で囲い、普通の代入式を書く。

> switch(country,
+ 'GB' = (URL <- "http://www.xxxxx.com/"),
+ 'JP' = (URL <- "http://www.xxxxx.co.jp/"),
+ 'CN' = (URL <- "http://www.xxxxx.cn/")
+ )

ifelse

ifelse(test, yes, no)

testの条件がTRUEのときはyesの返り値、FALSEの時はnoの返り値を渡す

> ifelse(-5:5 > 0, "positive", "negative")
[1] "negative" "negative" "negative" "negative" "negative"
[6] "negative" "positive" "positive" "positive" "positive"
[11] "positive"

See Also

リスト

異種データの集まり

ベクトルの集合演算

ベクトルの和集合・積集合・差集合・相当な集合

RStudio

Rのための統合開発環境

tidyr

データをtidyに整形する

swirl

インタラクティブにRを学ぶ。

dplyr

データフレームを操作するためのパッケージ

データフレームの結合

データフレームにデータを追加する