본문 바로가기
Data Science/R

[R 공부하기] 5. 조건문, 반복문, 함수 - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2024. 4. 12.
728x90
반응형

 

목차

  1. 조건문
  2. 반복문
  3. 사용자 정의 함수

 

1. 조건문

조건문은 조건에 따라 특정 명령을 실행하도록 하는 프로그래밍 구문이다.

조건문의 기본 형식은 if-else 문이다.

if (비교 조건) { 조건이 참일 때 실행할 명령문(들) } else { 조건이 거짓일 때 실행할 명령문(들) } 형식으로 작성하면 된다.

 

다중 if-else 문은 if 문과 else 문 사이에 여러 개의 else if 문이 존재하는 구문이다.

if (비교 조건) { if 문의 조건이 참일 때 실행할 명령문 } else if (비교 조건) { if 문의 조건이 거짓이고 else if 문의 조건이 참일 때 실행할 명령문 } ... else { 이전의 모든 조건이 전부 거짓일 때 실행할 명령문 } 형식으로 작성하면 된다.

그러면 if 문부터 차례대로 조건을 판별하며 맞는 조건을 찾아 명령문을 실행하고 만약 맞는 조건이 없으면 else 문의 명령문을 실행한다.

 

if 문의 비교 조건에는 논리연산자를 사용하여 여러 조건을 한 번에 지정할 수도 있다.

and 연산자인 &or 연산자인 |를 사용하여 조건에 논리연산자를 사용할 수 있다.

 

if-else 문을 한 문장으로도 만들 수 있다.

ifelse() 함수를 사용하면 되는데, ifelse(비교 조건, 참일 때 선택, 거짓일 때 선택) 형식으로 작성하면 된다.

반응형

2. 반복문

반복문은 정해진 동작을 반복적으로 수행할 때 사용하는 구문으로, 동일 명령문을 여러 번 반복해서 실행할 때 사용한다.
반복문에서 for 문은 반복 횟수를 알 때 사용하는 반복문이다.

for (반복 변수 in 반복 범위) { 반복할 명령문(들) } 형식으로 작성하면 된다.

반복이 진행될 때마다 반복 범위에 따른 반복 변수의 값이 변경된다.

 

반복문 안의 반복할 명령문에는 조건문도 올 수 있다.

반복문 안에 조건문을 사용하여 원하는 반복 변수의 값만을 추출할 수도 있다.

 

또한 다중 if-else 문을 사용하여 데이터프레임의 값에 따라 레이블을 결정할 수도 있다.

반복문이 끝난 후 결정된 레이블을 확인해 보면 조건에 따라 결정된 레이블들을 확인할 수 있다.

 

반복문을 사용해 결정한 레이블을 새로운 데이터프레임으로 만들 수도 있다.

새로 생성한 데이터프레임을 확인해 보면 값에 따라 정확하게 레이블이 정해진 것을 쉽게 확인할 수 있다.

 

반복문에는 for 문 이외에도 while 문이 존재한다.

while 문은 어떤 조건이 만족하는 동안 코드블록을 수행하고, 해당 조건이 거짓일 경우 반복을 종료하는 명령문이다.

for 문과 다르게 반복 횟수를 정확히 모를 때 주로 사용하는 반복문이다.

while (비교 조건) { 반복할 명령문(들) } 형식으로 작성하며, 비교 조건이 만족하면 반복할 명령문을 수행하고 다시 조건을 확인한다. 조건을 계속 만족하면 반복 명령문을 실행하고 조건을 만족하지 않는 순간 반복을 종료한다.

 

반복 작업이 필요한 경우 for 문과 while 문을 적용하는데, 그 반복 작업의 대상이 매트릭스나 데이터프레임의 행(row) 또는 열(column)인 경우 for 문과 while 문 대신에 apply() 함수를 이용할 수 있다.

apply(데이터셋, 행/열 방향 지정, 적용 함수) 형식으로 작성하면 지정한 함수를 지정한 방향에 따라 데이터셋에 적용하게 된다.

행 방향으로 지정할 땐 1로, 열 방향으로 지정할 땐 2로 지정하면 된다.

3. 사용자 정의 함수

원하는 함수를 사용자가 직접 정의하여 사용할 수도 있습니다.

함수명 ← function(매개변수 목록) { 실행할 명령문(들) ... return(함수의 실행 결과) } 형식으로 원하는 함수를 정의하면 된다.

정의한 함수를 사용할 때는 함수명을 작성하여 함수를 호출하면 되고, 매개변수 목록에 따른 인자들을 넣어주면 된다.

함수를 사용하면 return 문에 사용한 반환값을 함수의 결과로 반환하게 된다.

 

함수를 정의할 때 매개변수의 초기값을 설정해 줄 수도 있다.

매개변수의 초기값을 설정해 주었다면 함수를 호출할 때 해당 값의 인자는 넣지 않아도 된다.

또한 함수를 사용할 때 인자의 값을 지정해 주는 여러 방법이 존재하는데, 매개변수 이름 = 매개변수 값 형태로 넣어 호출할 수 있고 그냥 매개변수의 값만 넣어 호출할 수도 있다.

만약 그냥 매개변수의 값만 넣어 호출한다면 매개변수를 지정한 순서에 따라 값을 지정해줘야 한다.

 

모든 매개변수에 초기값을 지정해 주었다면 함수를 호출할 때 인자를 아예 넣지 않고도 사용할 수 있다.

인자를 넣지 않는다면 지정해 준 초기값이 함수의 값으로 사용된다.

또한 매개변수 이름과 값을 쌍으로 인자에 넣어주면 값의 순서는 상관없다.

마지막으로 매개변수 이름을 같이 넣어줄 때 이름을 일부 생략해도 사용할 수 있다.

 

함수를 정의할 때 return 문은 함수의 반환값을 지정해 주는데, 여러 개의 값을 반환해주고 싶을 때는 반환값들을 리스트 형식으로 묶어 return 문에 적어주면 된다.

list() 안에 키 = 값 형태 반환한 값들을 묶어주면 된다.

함수를 특정 변수에 지정하면 해당 변수명$키 형태로 반환되는 값들을 각각 추출해 줄 수 있다.

 

사용자 정의 함수를 다른 파일에 저장하고 그 파일에서 함수를 불러 사용할 수도 있다.

함수를 저장한 파일을 source() 함수에 넣어 해당 함수를 불러올 수 있고, 불러온 함수는 위에서 함수를 호출하는 방식으로 호출하여 사용하면 된다.

 

which() 함수는 데이터의 위치를 반환해 주는 함수인데, which() 함수 안에 조건을 넣으면 해당 조건을 만족하는 값의 위치를 반환해 준다.

조건을 만족하는 값이 여러 개이면 위치를 순서대로 모두 반환해 준다.

조건 대신 특정 값을 넣으면 해당 값의 위치를 찾아 모두 반환해 준다.

 

which() 함수를 통해 반환되는 결과를 인덱스로 저장하고 그 인덱스를 활용하여 데이터의 값들을 변환할 수도 있다.

또한 그 인덱스를 활용하여 해당 인덱스에 위치한 값만을 추출할 수도 있고, 그 값만으로 구성된 데이터를 새롭게 생성할 수도 있다.

728x90
반응형