日々のつれづれ

不惑をむかえ戸惑いを隠せない男性の独り言

if文

決まりごと
if文は

  • if(条件式){処理 1⃝ }else{処理 2⃝ }で定義し、条件式がTRUEなら処理 1⃝ を実行して、FALSEなら処理 2⃝ を実行します。
  • ifelse()を使うなら、ifelse(条件式,処理 1⃝ ,処理 2⃝ )

と書く

例えば、「xの各要素の繰り返し、i番目の要素(x[i]) が3で割り切れる(余りが0)なら出力し、割り切れないならx[i] に3 をかける」は、

> x <- rep(1:4,each=2)
> # 余りはx[i]%%3 で出力できるので
> for(i in seq(x)) ifelse(x[i]%%3==0,print(x[i]),x[i] <- x[i]*3)
[1] 3
[1] 3
> x
[1] 3 3 6 6 3 3 12 12

でな感じです。
また、matrixを利用した例では

> set.seed(123)
> x <- sample(9,12,replace=TRUE)
> x <- matrix(x,nrow=2,dimnames=list(1:2,letters[1:6]))
> for(i in 1:ncol(x)) if(diff(x[,i]) > 0) x[,i] <- NA
> x
a b c d e f
1 NA NA 9 NA 5 9
2 NA NA 1 NA 5 5

こうする。