ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • R 프로그래밍 4 - R 문법 기초3 반복문(for, while, repeat)과 함수(function)
    데이터분석/R 2021. 1. 2. 06:19
    반응형

    오늘 알아볼것은 R에서의 반복문과 함수입니다.

     

    어떤 작업을 반복해서 출력해야할 때 반복문이라는 것을 활용하게 되는데요.

    R에서의 기본적인 반목분은 for, while, repeat이 있습니다.

     

    하나씩 알아볼까요?


    1. 반복문

    - for

     

    for loop에서는 ()안에 반복수를 넣고 {}안에 하고 싶은 연산을 넣으면 됩니다.

    for(반복수){
      연산
    }
    

     

    예시로 구구단 3단을 출력해보겠습니다.

    for(i in 1:9){
      print(i*3)
    }

    위의 코드를 해석하자면

    1. i 를 1 부터 9까지 순차적으로 할당하겠다.(반복수)

    2. i에 3을 곱해서 출력하겠다.

     

    출력 결과를 확인하면 이런 결과가 나오게 됩니다.

    R 프로그래밍 for loop 예제

     

    - while

    while에는 ()안에 조건을 넣고 {}에는 조건이 참이 될 때까지 할 연산을 넣어주면 됩니다.

    while(조건){
    	조건이 참이 될때까지의 연산
    }

     

    예시를 들어보겠습니다.

    #j의 초기값은 0
    j = 0
    
    #j가 10이상이 될때까지 출력
    while(j < 10){
      print(j)
      j = j+1
    }

    위의 코드를 해석하면 이렇습니다.

    1. 초기 j 값을 0으로 설정

    2. j가 10미만일때는 j를 출력하고 j에 1을 더해라

    3. j가 10이상일때 반복문을 멈춘다.

     

    출력 결과를 확인하면 이런 결과가 나오게 됩니다.

    R 프로그래밍 while 예제

     

    - repeat

    repeat 함수는 조건문과 연산을 모두 {}안에 넣어서 활용하는 구조입니다.

     

    바로 예시로 가보겠습니다.

    #초기 k를 0으로 선언
    k = 0
    
    #repeat문
    repeat{
    
      #k를 출력해라
      print(k)
      
      #k가 10이상이면 멈춰라
      if(k >= 10) break
      
      #k에 1을 더해라
      k = k + 1
    }

    위의 코드를 해석하면 이렇습니다.

    1. 초기 k 값을 0으로 설정

    2. k가 10미만일때는 k를 출력하고 k에 1을 더해라

    3. k가 10이상일때 반복문을 멈춘다.

     

    출력 결과를 확인하면 이런 결과가 나오게 됩니다. 

    R 프로그래밍 repeat 예제

     

    while문과 비슷하나 중괄호안에 조건문과 break를 넣어줌으로써 반복문을 제어 할 수 있습니다.

     


    2. 함수

    프로그래밍을 하다보면 자기만의 함수를 만들어서 활용하는 경우가 매우매우 많습니다.

    R에서도 function을 통해서 함수를 정의해서 활용 할 수 있습니다.

    함수명<- function(인자){
      함수 연산
    }
    
    #함수명: 내가 해당 함수를 활용하기 위한 함수명
    #인자: 함수가 받아야하는 인자
    #함수연산: 인자를 받아서 연산

     

    함수를 만들때 고려해야 할것이 함수에 들어가는 인자인데요.

    함수의 기본개념이 어떤 x라는 값을 어떤 함수에 넣어서 결과 y를 뽑아내는 과정입니다.

    그래서 해당 x를 어떻게 넣어줄 것인지가 매우 중요한데요. 하나하나 알아보도록 하겠습니다.

     

    인자가 없는 함수

    #인자가 없는 함수
    func1 <- function(){
      print("hi, guys")
    }
    
    #함수 실행
    func1()

    인자가 없는 함수는 ()에 아무것도 들어가지 않는 함수입니다.

    해당 예제에서는 별도의 인자를 받지 않고 간단히 "hi, guys"를 출력만 하는 함수 입니다.

     

    해당 함수를 실행시키면 결과는 이렇게 나옵니다.

    R 프로그래밍 함수 예제1

     

     

    함수의 특정인자 전달

    #함수에 x,y를 전달
    func2 <- function(x,y){
      #x+y를 반환
      return(x+y)
    }
    
    #함수 호출
    func2(3,4)

    인자에 미지의 x,y를 받아서 더하는 함수 입니다.

    해당 예제에서는 3과 4를 받아서 더해봤습니다.

     

    해당 함수를 실행시키면 결과는 이렇게 나옵니다.

    R프로그래밍 함수 예제2

     

    인자에 기본값이 존재하는 함수

    #y에 기본값을 2로 둠
    func3 <- function(x,y=2){
      return(x*y)
    }
    
    #x값만 넣어도 값을 반환함 -> 기본값이 있기 때문
    func3(3)
    
    #y값자리에 4가 들어가 있어 y값이 4로 바뀜
    func3(3,4)

    기본값이 존재하는 함수에서는 인자에 x만 넣어도 함수의 값을 출력 가능합니다.

    x,y를 둘다 넣은 경우에는 y가 함수에 넣은 인자값으로 변경되서 적용 됩니다.

     

    해당 함수를 실행시키면 결과는 이렇게 나옵니다.

     

    R프로그래밍 함수 예제3

     

    인자가 가변적인 경우

    #인자가 가변적인경우 ...을사용
    func4 <- function(...){
      #인자들을 모두 합
      return(sum(...))
    }
    
    #1+2+3+4
    func4(1,2,3,4)
    
    #1+2+3+4+5
    func4(1,2,3,4,5)
    
    #1+2+3+4+5+6
    func4(1,2,3,4,5,6)

    인자가 가면적인 경우 ...을 활용해서 인자를 받아오게 됩니다.

    위의 예시에서 func4 함수를 가지고 1~4 , 1~5, 1~6까지의 숫자 합을 하나의 함수로 처리가 가능합니다.

     

    해당 함수를 실행시키면 결과는 이렇게 나옵니다.

     

    R프로그래밍 함수 예제 4

     

    결과 값으로 여러값을 반환하기

    func5 <- function(...){
      #c()로 하나의 벡터로 묶어서 반환
      return(c(sum(...),mean(...),min(...),max(...)))
    }
    
    func5(1,2,3,4)
    

     

     

    c()를 이용해서 값을 여러개 가져올 수 있습니다.

    위의 예제에서는 1~4에서 총합, 평균, 최소값, 최대값을 반환함수입니다.

     

    해당 함수를 실행시키면 결과는 이렇게 나옵니다.

    R프로그래밍 함수 예제 5


    마치며

    이제 R을 활용하기 위한 전반적인 기초문법은 한번훑어본 것 같습니다.

    다음시간부터는 데이터 프레임과 연계하여 데이터 분석에 필요한 함수들에 대해서 알아보도록 하겠습니다.

    반응형

    댓글

Designed by Tistory.