ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [R 프로그래밍] R Notebook 이란? (실습 과정 포함)
    프로그래밍 언어/R 프로그래밍 2019. 12. 12. 22:36
    반응형

    R Notebook 이란? 

    R Notebook은 간단히 말해서, Jupyter Notebook의 R 버전이라고 봐도 되겠다. 아직 Jupyter Notebook에 대해서 숙지 하지 않았다면, 이후에 포스팅으로 따로 정리해두겠다. 그러면 좀 더 풀어서 이야기 한다면, R은 본래 Interative 코드라서 명령어를 Console에 쳐넣게 되면 바로 결과를 보여 준다. 또는 R Studio에서 R Script를 작성하여 한번에 수행할 수도 있다. 하지만 특정한 코드 영역을 그 부분만 돌려보고 결과를 보고 싶다면 어떻게 해야 할까? 물론 R Script 에서 해당 부분만 드래그 하여 따로 돌려도 되겠지만, 그 이후에 또 다른 결과를 보려면 다시 드래그를 해야 하는 등 뭔가 결과를 코드에 일대일 대응하여 보기가 어려운 면이 있다. 이 부분을 보완하기 위해서 R Notebook에서는 영역 단위로 코드를 나누어서 돌릴 수 있게 해준다. 그리고 결과물들을 깔끔하게 보여줄 수 있고, 코드는 숨기고 출력물만 볼 수도 있다. 코드의 경우 말로 하기 보다는 직접 실습해보면서 알아 가는 것이 쉽기 때문에 지금부터 하나씩 실습해보자. 


    R Notebook 실습 해보기

    새로운 R Notebook 만들기

    먼저, 아래와 같이 Rstudio에서 [File] - [New File] - [R Notebook] 을 클릭하여 새로운 R Notebook 을 만들어 보자. 

     

     

    그러면 첫 페이지에 아래와 같이 여러 도움말들이 있다. 여기서 복잡하게 전부 다 알 필요 없이, 빨간색으로 색칠된 부분만 살펴봐도 된다. 앞으로 이부분 위주로 하나씩 설명해보겠다. 먼저 코드 아래에 결과들이 나타난다는 것(The results appear beneath the code)을 아래의 설명을 통해서도 다시 확인할 수 있다. 

     

     

    Chunk(청크)란? 

    먼저, 이것은 Chunk(청크) 라는 것으로 구분되는데 그냥 쉽게 말해서 앞에서 설명한 일부 코드를 의미한다. 아래에 보면, 빨간색 부분이 이러한 청크에 해당하고, ```{r}``` 사이에 원하는 코드를 작성하면 된다. 아래의 경우 예제로 plot(cars)가 들어가 있다.

     

     

    Chunk 내 코드 돌리기 - [Ctrl] + [Shift] + [Enter]

    자, 그러면 빨간색 부분 이외에 설명들은 모두 제거해보자. 그런 후, 아래와 같이 해당 청크에 커서를 둔 후! 위에서 익힌 [Ctrl] + [Shift] + [Enter]를 눌러 보자. 아래와 같이 청크 내에 있는 코드가 돌아간 결과가 청크 바로 아래에 나온다는 것을 알 수 있겠다. 여기서 오른쪽에 보면 오른쪽으로 화살표 비슷하게 생긴 아이콘을 눌러도 이와 같은 효과(Run Current Chunk)가 있다. 그 바로 왼쪽에 있는 것을 클릭하면 해당 청크 이전까지의 모든 코드를 돌리라고 하는 것이다. 

     

     

    새로운 청크 만들기 - [Ctrl] + [Alt] + i

    자, 그러면 새로운 청크를 만드는 것을 실습해보자. 아래와 같이 모두 지운 상태에서 

     

     

    원하는 장소에 커서를 둔 후, [Ctrl] + [Alt] + i 를 눌러 보자. 아래와 같이 새로운 청크가 손쉽게 만들어진다. 즉, 매번 ```{r} ```를 본인이 직접 칠 필요가 없다는 이야기다. 

     

     

     

    저장 및 미리 보기 - [Ctrl] + [Shift] + k

    마지막으로 R Notebook을 저장할 때, HTML 파일로 결과들을 미리 보기 할 수 있다. 

     

    그럼 아래와 같은 결과를 R Studio의 Viewer에서 볼 수 있다. 

    보통 R Notebook 을 사용하면 여러 코드 청크들을 생성해서 순서대로 디버깅을 하고, 중간 중간 필요한 정보들을 바로 확인할 수 있다. 그래서 아래에 보통 사용되는 예제 형태가 있다. 

     

    반응형

    댓글

Designed by Tistory.