프로그래밍/R

R의 반복문(repeat, while, for)

이자다 2023. 3. 16. 12:56
반응형

1. repeat

 

무조건 반복하고 보는 반복문. 반복이라는 기능에 가장 충실함.

 

repeat는 단순히 repeat 뒤에 나오는 코드 혹은 코드블럭을 반복하므로 코드 자체의 요소가 어느 일정한 시점에 멈출 수 있는 기능이 있거나 판단할 부분을 넣어줘야한다.

 

 

> i <- 20
> repeat{
+   if(i>25){
+     break
+   } else{
+     print(i)
+     i <- i + 1
+   }
+ }

[1] 20
[1] 21
[1] 22
[1] 23
[1] 24
[1] 25

 

안에 if문으로 종료조건 안넣어주면 끝도 없이 반복한다.

 

 

 

 

2. while

 

다른 프로그래밍 언어에서도 흔히 볼 수 있는 반복문. 조건을 주어 조건이 참일 경우에만 코드를 반복함.

 

dan <- 2
i <- 1

while(i < 10){
  mul <- dan * i
  print(paste(dan, "X", i, "=", mul))
  i <- i + 1
}

[1] "2 X 1 = 2"
[1] "2 X 2 = 4"
[1] "2 X 3 = 6"
[1] "2 X 4 = 8"
[1] "2 X 5 = 10"
[1] "2 X 6 = 12"
[1] "2 X 7 = 14"
[1] "2 X 8 = 16"
[1] "2 X 9 = 18"

 

참고로, print문에서 여러 요소들을 이어서 출력하고 싶으면 paste(붙이다) 함수를 사용해야한다.

 

 

 

 

3. for

 

어느 프로그래밍 언어에서나 존재하는 for문이지만 R에서는 약간 다르게 표현한다. 수식부분에 보통 자료구조가 들어가 해당 구조 안의 모든 원소의 갯수 만큼 반복을 수행한다.

 

dan <- 9
for (j in 1:9){
  mul <- dan * j
  print(paste(dan, "X", j, "=", mul))
}

[1] "9 X 1 = 9"
[1] "9 X 2 = 18"
[1] "9 X 3 = 27"
[1] "9 X 4 = 36"
[1] "9 X 5 = 45"
[1] "9 X 6 = 54"
[1] "9 X 7 = 63"
[1] "9 X 8 = 72"
[1] "9 X 9 = 81"

반복시 1부터 9 사이의 값을 가져와 i에 저장한다.

첫번째 반복에서 i에 벡터 (1 : 9) 중 첫번째 원소인 1을 저장한다.

 

 

 

 

 

반응형