R Markdown Introduction

Page content

R Markdown 소개 및 환경설정

데이터 분석가의 주요 업무 중의 하나는 향후에 참고자료로 활용하기 위해 작업결과를 문서화 해야 하는데, 상당량의 보고서를 작성해서 분석과정과 출력결과를 기술해야만 합니다.

보통의 과정은 아래과 같을 것입니다.

  • 1단계: 본인의 작업을 위해서 R 스크립트 작성
  • 2단계: 다양한 그래프가 첨부된 분석결과를 Word, PPT 분석결과를 기술해서 동료 또는 메신저로 분석결과 전송
  • 3단계: 분석결과 토의
  • 4단계: 각각의 그래프 결과 코드를 매칭하기 위한 작업이 토의 중 발생
  • 5단계: 혼란 및 불필요한 시간 소요 발생

그런데, 해당 작업물을 그 때 마다 웹페이지(HTML)을 생성하여 자체 서버내 구축할 수 있다면, 그러면 위 5단계의 과정을 3단계(소스코드 작성 -> 웹 게시 -> 분석결과 토의)로 축소할 수가 있을 것이며 특히, 연구자가 분석 당시의 고민과 문제점들을 스크롤링과 함께 같이 고민할 수 있는 시간으로 빠져들 수 있도록 유도할 수 있습니다.

데이터 분석 보고서는 보고서의 작성이 연구자의 끝이 아니기 때문에 분석의 과정과 결과물을 잘 정리하여 의사결정을 하는데 반드시 도움이 되어야 하는 일종의 제안서와 같습니다.

본 게시물은 R을 처음 접하는 데이터 분석가를 위해서 작성하였습니다. 사내의 보고서 문화 혁신에 기여하기를 바라는 마음과 함께!!


Step 1. R 마크다운 파일 생성

R 마크다운 파일 생성은 아래와 같이 생성할 수 있습니다. RStudio에서 File -> New File -> R Markdown을 클릭하시면 아래와 같이 대화상자가 열립니다.

Title과 Author를 설정 한 후 HTML로 클릭합니다.

Step 2. R 마크다운 기본 구성요소

기본 구조는 아래와 같이 확인 될 것입니다. Alt text

구성 1. Header

초기 설정된 텍스트 덩어리에 R에 대한 지시사항이 담겨있다: 제목, 저자명, 날짜, html 출력물(다른 말로, 웹페이지)을 생성할지가 포함됩니다.

---
title: "Initial R Markdown document"
author: "Evan Jung"
date: "10/4/2019"
output: html_document
---

위 필드는 임의 삭제가 가능하나, 경험적으로는 포함 시키는 것이 좋습니다.

구성 2. R 코드 덩어리 - Set Up

위 구성은 R 마크다운 문서의 기본 Set Up 코드이기 때문에 유지하는 것을 원칙으로 합니다. 위 코드 상 옵션에 대한 설명은 아래와 같습니다.

  • setup: 소스코드 덩어리에 대한 title이며, 다른 소스코드 덩어리와 중복 작성 시, 에러가 발생합니다.
  • include=FALSE: 문서에는 포함시키지 않고, 몰래 실행할 수 있으며, 주로 최초 설정에 이용됩니다.
  • knitr::opts_chunk$set에서 디폴트 옵션을 설정할 수 있으며, echo = TRUE는 코드를 보여줍니다. 그 외 옵션은 아래를 확인하여 주시기를 바랍니다.1
    • eval = F: 코드 실행하지 않는다.
    • echo = F: 코드를 보여주지 않는다.
    • include=F: 실행 결과를 보여주지 않는다.
    • message=F: 실행 때 나오는 메세지를 보여주지 않는다.
    • warning=F: 실행 때 나오는 경고를 보여주지 않는다.
    • error=T: 에러가 있어도 실행하고 에러코드를 보여준다.
    • fig.height=(number): R에서 작성한 그래프를 그림의 높이를 조정할 수 있다.
    • fig.width=(number): R에서 작성한 그림의 넓이를 높이를 조정할 수 있다.
    • fig.align=‘center’ : R에서 작성한 그림의 위치를 변경할 수 있다.

그 외 옵션을 확인하려면 아래와 같이 코드를 입력 후 실행하면 결과값이 나옵니다.

구성 3. R 코드 덩어리 - 작업코드 예제

knitr로 실행되면, R 코드 덩어리를 실행결과와 함께 나타납니다.

Step 3. 마크다운(Markdown)문법에 대한 이해

마크다운은 2004년 12월에 처음 등장한 것으로 보입니다.2 마크다운을 활용하여 작성된 문서는 보다 쉽고 빠르게 HTML 등 다른 문서 형태로 변환이 가능합니다. 특별히, R Markdown은 R사용자를 위한 Markdown으로 이해하시면 좋습니다.

기본문법 1. Bold & Italic

별표*를 활용하여 굵게 또는 이탤릭체로 변환할 수 있습니다.

  • 굵게: **굵게(bold)**
  • 이탤릭: *이탤릭(italic)*

기본문법 2. 구분점

아래와 같이 하이픈- 혹은 별표*를 적용해서 구분점이 붙은 항목을 생성할 수 있습니다.

혹은 아래와 같이 작성도 가능합니다.

코드 실행 시, 다음과 같이 웹페이지로 보여지게 됩니다.

  • 위 그래프는 ~
  • 위 표는 ~
  • 따라서, ~

숫자 사용을 활용한 구분점도 아래와 같이 적용하면 가능합니다.

코드 실행 시, 다음과 같이 웹페이지로 보여지게 됩니다.

  1. 위 그래프는 ~
  2. 위 표는 ~
  3. 따라서, ~

기본문법 3. 섹션 제목 만들기

섹션 제목을 만들려면 # 기호를 활용하여 각 라인 첫번째 적용하게 되면 다른 크기를 갖는 섹션 제목을 만들 수 있을 뿐만 아니라, 위 섹션이 목차로 재 활용될 수 있습니다.

# 첫번째 제목 (Title)
## 두번째 제목 (Main Section)
### 세번째 제목 (Sub-Section)
#### 네번째 제목 (Sub-sub section)

첫번째 제목 (Title)

두번째 제목 (Main Section)

세번째 제목 (Sub-Section)

네번째 제목 (Sub-sub Section)

Step 4. 마크다운(Markdown) 다양한 기능 사용

기능 1. 하이퍼링크

독립적으로 링크 코드를 입력하거나, 또는 문장 중간에 삽입이 가능합니다. 아래와 같은 방법으로 입력하시면 됩니다.

문법: [text](링크)
예시: [네이버](https://www.naver.com)

네이버 클릭하시면(&#8594) 네이버 네이버 메인 화면에 연결됩니다.

기능 2. 이미지 삽입

아래와 같은 방법으로 이미지를 삽입할 수 있습니다.

문법: ![caption](경로)
예시: ![rmarkdownlogo](./rmarkdownlogo.jpeg)

다만, image size 작업 조정을 직접 하려면 R 코드 덩어리에 아래와 같은 방법으로 작업할수도 있습니다. (예: out.width=“400px”, out.height=“400px”)

다만, 경험적으로 봤을 때는 개별 이미지를 수정하려면 HTML 소스 코드 또는 소스코드를 직접 입력하는 것을 권장합니다.
test.Rmd

---
title: "Initial R Markdown document"
author: "Evan Jung"
date: "10/4/2019"
output: html_document
css: test.css
---

## Page with an image {#myImagePage}
![Image](path/to/image)

기능 3. LaTeX expression

수식작성법은 Latex라는 문법을 참조해서 작성할 수 있습니다.

$$	x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$

$$ x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$

기능 4. 인라인(Inline) R 코드

인라인 R코드를 활용하는 가장 궁극적인 목적은 보고서의 모든 숫자를 재현가능하게 만들기 위해서입니다. 인라인 코드를 작성할 때 `r`을 사용합니다. 예를 들어, `r 2+2` 또는 `r round(some_value, 2)` . R 코드가 실행되어 코드가 결과 값으로 치환됩니다.

Step 5. 다른 언어와의 호환성 (고급)

R과 함께 파이썬 또는 SQL을 다루는 머신러닝 개발자가 있다고 가정합니다. 그러면 R Markdown 안에서도 python 코드를 실행 후 작업할 수가 있습니다. 다만, 이때에는 코드 덩어리를 파이썬 또는 sql로 명명해야 적용이 가능합니다.

예를 들면 아래와 같이 작성이 가능합니다.

(Option) 더 공부하기

위에서 제공한 자료를 가지고도 충분히 보고서를 작성하는데는 부족함이 없습니다. 다만, 보고서를 조금 더 풍성하게 만들고자 한다면 메뉴얼을 참고해서 보다 전문적으로 작성하는 권장합니다.

FAQ


  1. “R Markdown 기초”, “Zarathu Official Blog”, 2019년 1월 3일 수정, 2019년 10월 4일 접속, https://blog.zarathu.com/posts/2019-01-03-rmarkdown/ ↩︎

  2. “Markdown”, “Daring Fireball”, 2004년 12월 17일 수정, 2019년 10월 4일 접속, https://daringfireball.net/projects/markdown/ ↩︎