ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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일때 출력결과는 이렇게 나올 것 입니다.

     

    R 프로그래밍 IF문 예제1

     

    이번엔 아래예제로 하나 더 알아보겠습니다.

    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일때 출력결과는 이렇게 나올 것 입니다.

    &&를 활용해서 이상 이하가 같은 레벨의 조건안에 있을때 이런식으로 처리할 수 있습니다.

    R 프로그래밍 IF문 예제2

    - 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)

     

    출력결과

    R 프로그래밍 ifelse 예제1

     

    다른 예시를 들어보겠습니다.

    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 프로그래밍 ifelse 예제2

     


    마치며

    오늘은 R 프로그래밍에서 연산자와 조건문에 대해서 알아봤습니다.

    다음엔 반복문과 함수에 대해서 알아보도록 하겠습니다.

     

     

     

     

     

    반응형

    댓글

Designed by Tistory.