프로그래밍 /R

[R] 반복문(for loop, while loop)

yooj_lee 2019. 6. 12. 21:38
300x250

- 반복문

R에서는 vector, list, data.frame의 원소에 대한 반복적인 연산이 필요할 때마다 loop을 이용하기보다는 벡터화를 사용하는 것이 더 효율적이다. 그러나 때때로 루프 사용이 불가피할 경우, for문과 while 반복문을 사용할 수 있다.

1. for 루프

for 루프는 vector로 제공된 인덱스에 대해 반복하고, 지정된 동작을 수행한다.

for( i in 1:10){

    action

→ 1:10까지 총 10번을 반복하며 action을 수행하는 for 문의 선언이다. 1:10이 들어가는 세번째 인자 자리에는 임의의 형을 가지는 vector가 들어갈 수 있으며, 대부분 numeric이나 character 형을 가진다.

fruitLength와 fruitLength2의 결과는 같지만 fruitLength2가 훨씬 쉽게 만들어졌다.

R의 내장된 벡터화는 for loop과 동일한 기능을 훨씬 효율적인 코딩으로 수행한다.

 

2. while 루프

while 루프는 테스트되는 조건이 참인 동안 중괄호 안의 코드를 실행한다(무한 루프도 가능ㅋㅋㅋ).

ex) x값을 출력하고 x가 5에 도달할 때까지 이 과정을 반복한다.

x <- 1

while (x <= 5){

    print(x)

    x <- x+1

}

 

3. next와 break

next는 python의 continue와 같고, break는 그냥 똑같다. if 문이랑 같이 쓰이는데, next는 이번 단계를 건너뛰고 다음 단계로 넘어가는 데 쓰이고 break는 반복문을 탈출시키는 명령어다. 

 

 

+) Nested loop은 웬만하면 쓰지 말자. 연산이 너무 복잡해진다.

300x250