if (条件) {真の場合の式} else {偽の場合の式}
ifは単一の条件のみを受け付けるのでベクトルの場合エラーが発生する。
x <- 4
y <- 2
z <- c(6,8)
if (x > y) x else y
## [1] 4
# ベクトル演算はできないのでエラー
if (x > z) x else z
## Warning in if (x > z) x else z: 条件が長さが 2 以上なので、最初の 1 つだけ
## が使われます
## [1] 6 8
&&(かつ): 左辺の評価がTRUEの時に、右辺を評価する。 左辺がFALSEであれば、全体の式はFALSEになる。
||(または): 左辺の評価がFALSEの時に、右辺を評価する。 左辺がTRUEであれば、全体の式はTRUEになる。
c <- 2
d <- 4
if(c == 2 && d == 4) "good" else "NG"
## [1] "good"
if(c == 4 && d == 4) "good" else "NG"
## [1] "NG"
if(c == 2 || d == 4) "good" else "NG"
## [1] "good"
if(c == 4 || d == 4) "good" else "NG"
## [1] "good"
ループ処理 上限値を設定して繰り返す。
for (i in seq(from=2, to=10, by=2)) {print(i)}
## [1] 2
## [1] 4
## [1] 6
## [1] 8
## [1] 10
ループ処理 ある条件に対して合致するまで繰り返す。
i <- 2
while (i <= 10) {
print(i)
i <- i + 2
}
## [1] 2
## [1] 4
## [1] 6
## [1] 8
## [1] 10
ループ処理で条件によりスキップと中止を対応する。
# next
for(n in 1:5) {
if(n == 4) next
cat(n)
}
## 1235
# break
for(n in 1:5) {
if(n == 4) break
cat(n)
}
## 123
条件分岐
switch(1, "big", "small")
## [1] "big"
switch(1, a={"big"}, b={"small"})
## [1] "big"
switch("b", a={"big"}, b={"small"})
## [1] "small"
ifelse(条件, TRUE, FALSE)
ifelse(c(TRUE, FALSE), c(1,2), c(3,4))
## [1] 1 4
copyrigth © 2016 r-beginners.com All rigths reserved.
PAGE TOP ▲