決まりごと
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
こうする。