- for文はfor(変数 in 繰り返し条件){処理} で定義し、変数が繰り返し条件を満たすまで処理を繰り返します。
- while文はwhile(条件){処理} で定義し、条件が満たされなくなるまで処理を繰り返します。
- 上の繰り返しをif 文とwhile 文で標記すると
- もとの文
> x <- 1 > x <- x + 1 > x <- x + 1 > x <- x + 1
-
- if文で記述すると
> x <- 1 > for(i in 1:3){x <- x + 1} # i は1,2,3 を指し、順番にxと足しあわす。 #もしくは > x <- 1 > for(i in 1:3) x <- x + 1 # one-liner なら{}を省略できます。
-
- while文で記述すると
> x <- 1 > while(x < 4){x <- x + 1}# i が4 になるまで、x にi を足し、i に1 を足す。
こんな風に記述できる。
- for 文はmatrix, data.frame などと組み合わせると便利です。
> x <- matrix(seq(20,1,by=-2),nrow=2,dimnames=list(1:2,LETTERS[1:5])) > x <- rbind(x,"sum"=NA) > for(i in 1:ncol(x)) x["sum",i] <- sum(x[1,i],x[2,i]) > x A B C D E 1 20 16 12 8 4 2 18 14 10 6 2 sum 38 30 22 14 6
- while文は繰り返し条件が決まっているときに便利です。
> set.seed(123) > x <- NULL > while(length(x) <= 100) x <- c(x,sample(100,1)) # x の要素数が100 になるまで繰りかえす
こんな風に利用できる。