-
R 프로그래밍 3 - R 문법 기초2 연산자 와 조건문(if, else if, ifelse)데이터분석/R 2021. 1. 1. 07:22반응형
오늘은 R 문법에서 연산자, 조건문에 대해서 알아보겠습니다.
1. 연산자
- 산술연산자
a <- 1+2 #더하기 b <- 2-1 #빼기 c <- 3*2 #곱하기 d <- 6/3 #나누기 e <- 2^2 #거듭제곱 f <- 27 %/% 4 #나눗셈정수 g <- 27 %% 4 #나눗셈나머지
R에서 기본으로 제공되는 산술연산자는 다른 프로그래밍 언어와 비슷합니다.
- 논리연산자
연산자 기능 == 같다. != 같지않다. > 크다. >= 크거나 같다. < 작다. <= 작거나 같다. && AND 조건 || OR 조건 논리연산자도 이렇게 구성되어 있습니다.
2. 조건문(if, else if, ifelse)
- if와 else if
if문은 만일 내가 어떠한 조건에 대해서 처리를 해야 할때 쓰는 조건문입니다.
예를 들어 내가 어떤 a라는 변수가 50이상일때 "yes"라는 텍스트를 출력해야 한다고 가정해봅시다.
여기서
조건: a라는 변수가 50이상일때
연산: "yes"라는 텍스트를 출력
이런 작업을 할때 조건문이 적당할 수 있습니다.
# 기본적으로 이런식으로 되어있다. if(조건){ 연산 } else { 연산 } # if 조건은 여러개 쓸때는 else if를 활용한다. if(조건) { 연산 } else if(조건) { 연산 } else { 연산 }
기본적인 문법은 이렇게 되어있습니다.
예시로 알아볼까요?
x가 5보다 크면 yes를 출력하고 5이하면 no를 출력하는 if문이 있다고 가정해봅시다.
x <- 5 if(x >= 5) { print("yes") } else { print("no") }
x 가 5일때 출력결과는 이렇게 나올 것 입니다.
이번엔 아래예제로 하나 더 알아보겠습니다.
1. x가 5 이하고 3이상인경우 "yes" 출력
2. x가 1 이상이고 2이하면 "soso" 출력
3. x가 위의 경우가 아닌경우 "no" 출력
x <- 5 if(x <= 5 && x >= 3) { print("yes") } else if (x <= 1 && x >= 2){ print("soso") } else { print("no") }
x 가 5일때 출력결과는 이렇게 나올 것 입니다.
&&를 활용해서 이상 이하가 같은 레벨의 조건안에 있을때 이런식으로 처리할 수 있습니다.
- ifelse
ifelse는 if문을 좀 간결하게 사용할때 + 벡터단위로 연산이 필요할때 사용됩니다.
#하나의 조건을 활용할때 ifelse (조건, 조건을 만족했을시 값, 조건을 불만족 했을 시 값) #세가지 이상의 조건을 활용할때 ifelse (조건1, 조건1을 만족했을시 값, ifelse(조건2, 조건2을 만족했을시 값, ifelse(조건3, 조건3을 만족했을시 값, 조건을 불만족 했을 시 값)))
예시를 들어봅시다.1. 10,20,30,50,70,80,90,100으로 이루어진 시험점수 벡터가 있다고 가정
2. 시험의 합격점수는 50점임
3. 시험점수 벡터를 이용하여 "합격" 과 "불합격" 으로 벡터를 만들고 싶음
이 경우에 if문을 활용한다면 리스트, 반복문, if문등 매우 귀찮은 작업들을 해줘야 합니다.
이렇게 벡터단위로 조건 연산을 처리할때는 ifelse가 매우 유용합니다.
ifelse로 위의 조건을 처리
#시험점수 벡터 grade <- c(10,20,30,50,70,80,90,100) #ifelse를 활용한 합격여부벡터 is_pass <- ifelse (grade >= 50, '합격', '불합격') print(is_pass)
출력결과
다른 예시를 들어보겠습니다.
1. 10,20,30,50,70,80,90,100으로 이루어진 시험점수 벡터가 있다고 가정
2. 시험의 합격점수는 50점임
3. 90점 이상에게 장학금을 주고싶음
3. 시험점수 벡터를 이용하여 "합격" 과 "불합격"과 "장학금" 을 벡터로 만들고 싶음
이경우 아까보다 조건이 1개 더 많아졌죠?
이랬을 때 조건을 불만족 했을때 넣는 값 자리에 ifelse를 하나 더 넣어주면됩니다.
#시험점수 벡터 grade <- c(10,20,30,50,70,80,90,100) #ifelse를 활용한 합격여부벡터 is_pass <- ifelse (grade >= 90, '장학금', ifelse(grade >= 50, '합격','불합격')) print(is_pass)
마치며
오늘은 R 프로그래밍에서 연산자와 조건문에 대해서 알아봤습니다.
다음엔 반복문과 함수에 대해서 알아보도록 하겠습니다.
반응형'데이터분석 > R' 카테고리의 다른 글
R 프로그래밍 5 - 수열 만들기(rep,seq) (0) 2021.01.03 R 프로그래밍 4 - R 문법 기초3 반복문(for, while, repeat)과 함수(function) (0) 2021.01.02 R 프로그래밍 2 - R 문법 기초1(변수선언 및 삭제, 자료형태) (0) 2020.12.31 R 프로그래밍 1 - R스튜디오 모습 및 프로젝트 시작 (0) 2020.12.30 R 프로그래밍 0 - R 언어 & R스튜디오 설치 (0) 2020.12.29