日々のつれづれ

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

for文、while文

  • 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 になるまで繰りかえす

こんな風に利用できる。