ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [R 프로그래밍] rep() 함수란?
    프로그래밍 언어/R 프로그래밍 2019. 7. 19. 06:58
    반응형

    이번에는 간단하게 R에서 rep() 함수에 대해서 알아보자. 반복되는 수를 생성해주는 간단한 함수이다. 


    rep() 함수: 반복되는 수 생성하는 함수

    가장 기본적인 사용방법은 rep() 함수에서 rep(a, b) 첫 번째 인자로 a는 반복하고자 하는 것을 넣으면 된다. b에서는 앞에서 입력한 a를 어떤식으로 반복할 것인지를 결정하고, 만약에 b가 스칼라인 하나의 숫자로 이루어져 있다면 단지 횟수를 의미한다. 즉, 앞에 a에서 1이 나왔고, b에서 2가 나오면 단지 1을 두번 반복한다. 하지만 여기에 벡터로 인자들을 입력하면 조금 복잡해진다. 예제를 통해서 차근차근 알아가도록 하자! 

     

    우선 가장 기본적인 형태이다. 

    우선 위에 보이듯이 1이 두 번 반복되는 값을 보인다는 것을 확인하자. 여기에 첫 번째 인자로 스칼라가 아닌 벡터를 넣어보자. 

    단순하게 생각하기에는 1과 2가 나열되어 있는데, 이것이 111 222 라고 반복 될 수도 있을 텐데, 여기서는 앞의 인자를 하나의 통으로 보고 반복 하는 것이다. 즉, (1, 2)라는 것은 하나의 벡터로 이 벡터를 반복하니, 위와 같이 121212 라고 반복이 되는 것이다. 자, 그렇다면 조금 더 복잡하게, 두 번째 인자에서 벡터를 넣어 보자. 

    이때에는 위의 결과만 보면 바로 이해가 될 것인데, 앞의 벡터 각각의 원소에 횟수를 지정해준다. 즉, 첫 번째 원소를 1번 반복하고, 두 번째 원소를 4번 반복하라고 하는 것이다. 그런데 이러면 약간 의문이 드는데, 무조건 두 인자 모두 벡터일 경우에는 차원이 정확하게 같아야 하지 않을까 하는 생각이 든다. 왜냐하면 뭔가 차원이 맞지 않으면 반복의 규칙을 어떻게 해야 하는지 감이 안잡히기 때문이다. 그럼 실험한번 실험해보자. 

    역시 예상한 대로 에러가 발생하면서 아무런 결과를 보여주지 못한다는 것을 알 수 있다. 


    마지막으로 예제를 한번 풀어보자.
    1 1 2 2 3 3 4 4 5 5 .... 이런식의 패턴으로 10 10 까지 반복되는 서열을 만들어 보자.

    먼저 생각을 해보면, 무조건 서열에 포함되어 있는 숫자들은 첫 번째 인자에서 모두 선언이 되어야 쓰여질 것이다. 그렇다는 것은 최소한 1부터 10까지는 무조건 들어가야 하는건데, 어떤식으로 반복을 시킬 지를 생각해야 한다. 흠,,, 생각보다 간단하네? 그냥 1부터 10까지를 2번씩 반복하도록 하면 된다. 그런데 여기서 두 번째 인자를 2로 하게 되면 1 2 3 4 ...10 1 2 3 4 ... 10 이런식으로 될 것이다. 따라서, 22222... 이렇게 열번 있는 서열을 두 번째 인자에 넣어야 하는데 이것 역시 rep(2, 10)으로 나타낼 수 있다. 그러면 최종 결과는 아래와 같다. 

    반응형

    댓글

Designed by Tistory.