본문 바로가기

배우기/복습노트[R과 분석]

[복습] R(programming language) 반복문(ifelse함수, for문, while문) (2)

728x90
반응형

https://metime.tistory.com/116

 

[복습] R(programming language) 반복문(for문) + 복습후기(20231124)

R에서의 반복문인 for문을 살펴보자. 문법은 아래와 같다. for (반복 변수 in 대상) { 반복할 문장 } 반복 변수: for 문 내부에서 사용할 임시 변수 바로 예시를 들어보겠다. 예) 1부터 10까지 출력하여

metime.tistory.com

 

위의 반복문에서 오늘은 추가로 while을 더 배웠다.

먼저 정리부터 해보자.

 

 

1. ifelse(반복문이라기보다는 함수)

다중 fetch가 가능하여 서로 다른 대상에 대해 동시에 조건 전달 또는 연산이 가능하다. 그리고 벡터의 원소별 반복을 하며 for문을 사용하지 않고도 첫 번째 원소를 가져와서 조건검사 및 연산을 수행한다. 그러나 복잡한 프로그래밍 기능은 구현할 수 없다.

 

2. for문

반복할 대상이 정확히 명시되어있는 경우 사용한다(시작과 끝 값이 명확). 그리고 일반적으로 다중 fetch가 불가하다(하나의 for문에 여러 대상에 대한 반복을 수행하는 행위). 이 부분은 위치기반 for문으로 작성하면 깔끔하게 리턴이 된다.

 

3. while문

반복할 대상이 정확히 명시되어있지 않고 조건의 참/거짓에 따라 반복 수행한다(시작값과 끝 값이 명확하지 않음)

 

 

while문을 본격적으로 나가기 전에 다중 fetch가 필요한 경우에 대항 연습을 하였다.

 

student.csv 데이터를 사용하여 3, 4학년인 경우 남자이면 A반, 여자이면 B반, 1, 2학년의 경우 C반으로 반편성을 하려고 한다. 각 학생의 반을 출력하여라(ifelse문, for문 두 방법으로 문제 풀이)

 

 

먼저 ifelse로풀이한 방법이다.

 

 

다음은 for문을 이용하여 풀었다.

 

 

728x90

 

 

while문

조건이 참이면 계속 반복하는 구조이다(조건 base: ~ 할 때까지).

초기값 정의가 필요하며 조건에 의해 반복의 마지막 지점의 정의 또한 필요하다.

다음값 정의도 필요하다.

위 내용은 예제를 적용해보며 확인해보자

 

 

예제로 1부터 100까지의 총 합(누적합)을 계산해보자.

먼저 for문으로 풀어보겠다.

 

위와 같이 해결하는 데에 있어서 일반화 시키는 과정이 중요하다.

일반화 시키는 과정은 아래처럼 하면 된다.

i             vsum

1               1

2           (1) + 2

3        (1+2) + 3

4      (1+2+3) + 4

5    (1+2+3+4) + 5

...  => vsum + i

9

10

 

 

while 문으로 풀이하면 아래와 같다.

 

 

이번엔 while문을 이용하여 1부터 100까지 홀수만 더해보자

 

 

산술 연산자를 조금만 언급하고 넘어가자면,

사칙연산: +, -, *, /

거듭제곱: ^, **(파이썬은 **만 가능), 2^4, 2**4

7%/%3: 7을 3으로 나눈 몫 (trunc(7/3) 도 가능)

7%%3 : 7을 3으로 나눈 나머지

 

728x90
반응형