티스토리 뷰

빅데이터/R

R Markdown 문법

Mac's analystics 2017.01.09 17:06

http://rstudio-pubs-static.s3.amazonaws.com/52798_5cfd05b01e574668b1a4093a94f27434.html 퍼옴 


분석을 R로 하고나서 분석 결과를 다른 word나 한글 문서에 작성하기 위해서는 엄척난 수고가 필요하다.
나도 지난 1년간 R을 공부하며 R로 분석한 project를 R 스크립트로 작성하고 다시 word로 옮겨야 했다.
이과정은 code output을 캡쳐하고 plot을 파일로 저장하고 clt+c+v의 귀찮은 작업이 필요하다.

R을 사용하다 모르는 것이 있으면 구글을 사용하게 되있는데, 구글에서 찾은 R자료들을 보면 보통 깔끔하게 작성되있다.
무엇으로 작성되었는지 알아보니 Markdown으로 작성되었다는 것을 알았다.

그리고 지금 블로그를 시작하는 시점에서, R markdown의 기본을 시작으로 지난 1년간 R을 공부하며 정리한 자료들을
R markdown으로 작성하여 R markdown에 익숙해지고 지난 자료들을 복습하는 의미에서 포스팅을 작성하고자 한다.

포스팅 본문 전체가 하나의 코드이다. 첨부파일에 코드를 실행한 HTML 결과 파일을 첨부한다.
코드와 결과 HTML 결과 파일을 비교해가면서 보는것이 도움이 될 것같다.

아래 R markdown의 예제 코드는

두 싸이트를 바탕으로 작성하였다.

R markdown 시작하기

  1. R markdown을 사용하기 위해서는 knitr package가 필요하다.
    R studio 콘솔창에 install.packages("knitr")입력하여 설치한다.
  2. R markdown을 작성하기 위해서는 일반 R script가 아닌 .Rmd script창을 열어야한다.
    Rstudio 메뉴창의 file아래 새파일추가 버튼을 클릭하면 R script아래 R markdown을 열어주면 된다. 작성하고자 하는 주제와 저자이름 그리고 문서형식을 선택하고 ok버튼을 누르면 .Rmd script창이 생성된다.
  3. 이제 R markdown 문법에 맞게 문서를 작성하면 된다. 그리고 작성한 문서를 HTML파일로 변환하기 위해서는
    .Rmd창 아래 Knit HTML버튼을 클릭하면 문서가 생성된다.

Basic syntax

Empasis

글자를 강조하기 위해서 기본적으로 italic과 bold체가 있다.
italic은 강조하고자 하는 text 양끝에 * 또는 _를 입력하면 되고,
bold는 강조하고자 하는 text 양끝에 ** 또는 __를 입력하면 된다.

예제로 아래 문장에서 서울과학기술대학교는 italic으로 데이터사이언스는 bold 표현해보자.

서울과학기술대학교 데이터사이언스학과 이강혁
서울과학기술대학교 데이터사이언스학과 이강혁

Headers

headers는 말그대로 머릿글이다. 머릿글로 하고자 하는 글에 #으로 머릿글을 나타낸다.
#의 개수에 따라 머릿글의 크기가 조정되고 # 1개가 가장 큰 머릿글이 된다.

이강혁

이강혁

이강혁

이강혁

이강혁

inline R code

text작성시 text중간 중간에 R문법이 들어가게 된다면,
탭키위에 키로 다음과 같이 입력하고 `r ` 안에 연산하고자 하는 r 코드을 쓰면 된다.

예를 들어 1 + 1 = 2 로 입력하면 1+1=2로 나타날 것이다.

Blockquotes

어떤 문장을 블록 지정해주고 싶다면, blockquotes를 사용하는데 > 크다 기호를 사용하고
기본 문장 위아래 한칸을 비우고 문장을 작성하면 된다.

예를 들어, 플라톤은 말했다.

인간에게 있어서 가장 아름다운 진실은 마음가짐을 바꾸면
현실을 바꿀 수 있다는 것이다.

Plain code blocks

고정된 블락안에 코드를 넣는다. 이 코드는 계산되지 않고 HTML에서 블락안에 코드가 그대로 출력된다.

This text is displayed verbatim / preformatted
1 + 2 * 3 / 5

Inline code

text의 양끝에 ``을 넣으면 HTML문서에서 빨간글씨로 블락처리된다.

데이터사이언스 이강혁 서울과학기술대학교

Manual Line Breaks

markdown에서 text를 작성하다 line break 즉 행바꿈을 하기위해서는
바꾸고자 하는 글의 끝에 2개 이상의 space를 입력해야 행이 바뀔것이다.

  • 2개 이상의 space를 입력하지 않았을 때,

서울과학기술대학교 데이터사이언스 이강혁

  • 2개 이상의 space를 입력하였을 때,

서울과학기술대학교
데이터사이언스
이강혁

Basic console output

기존 R script에서 code를 입력했을 때, 콘솔창에 뿌려지는 code 결과를 문서에 나타나게 하기위해서
R code chunk 안에 R code를 입력해야 한다. chunk는 .cmd 스크립트창의 오른쪽 상단의 Chunks를
클릭하여 “Insert chunks”를 선택하거나 그냥 스크립트창에 직접 입력해도 된다.

R code chunk는 아래와 같고 chunk안에 출력하고자 하는 R code를 입력하면 된다.

chunk 안에 아래와 같은 코드를 입력해 보자

x <- 1:10
y <- round(rnorm(10, x, 1), 2)
df <- data.frame(x, y)
df
##     x    y
## 1   1 0.59
## 2   2 2.29
## 3   3 1.14
## 4   4 5.41
## 5   5 5.22
## 6   6 5.77
## 7   7 5.89
## 8   8 8.80
## 9   9 9.51
## 10 10 9.12

HTML 출력결과 코드와 df 결과가 문서에 나타날 것이다.
{r} 안에 많은 chunk 옵션들이 있다. chunk 옵션은 {}안에 커서를 넣고 Tab키를 눌러 확인할 수 있다.
chunk옵션으로 부터 코드를 출력시키지 않거나, 결과물을 출력시키지 않고 또는 결과물의 싸이즈 등을 설정할 수 있다. 간단한 chunk 옵션들은 아래서 설명하겠다.

  • 한가지 더 추가하자면 {r} 안에 주석을 달아주는게 좋다. 예를 들어 {r code1}이라는 주석을 달아놓면
    나중에 chunk들이 많이 생겼을때, 스크립트 창 오른쪽 상단의 Chunks로 부터 “Jump to”를 클릭하여
    찾기 원하는 chunk를 바로 찾아 갈 수 있다.

Plots

knitr에 의해서 R로 그린 plots 또한 HTML문서에 출력할 수 있다.
word나 ppt 작성시 R에서 그린 plot을 넣기 위해서는 plot을 따로 저장해서 word나 ppt로 옮겨야하는
번거로움이 있다. 하지만 markdown으로 문서 작성시에는 R에서 그림 그림을 바로 HTML문서로 출력시키주기
때문에 편리한 장점을 가진다.

simple plot

간단하게 basic 그래픽을 사용하여 위에서 생성한 x의 산점도를 그려보자.

plot(x)

단순히 Basic console output에 data.frame을 출력했던 방법과 마찬가지로 chunk안에 plot을 출력하는
code를 입력하면 HTML문서에 plot이 출력된다.

Multiple plots

하나의 chunk안에 여러개의 plot을 그릴 수 있다.

boxplot(1:10 ~ rep(1:2,5))

plot(x, y)

ggplot2 plot

ggplot2는 R의 기본 그래픽스로 하기어려운 costomizing을 하기 쉽다.
단순하게 보기좋은 떡이 먹기도 좋다고 기본 그래픽스로 그린 그림보다 ggplot2로 그린 그림이 이쁘다.

먼저 ggplot2 library를 불러온다.

library(ggplot2)

costomizing없이 기본 default 그림을 그려보겠다.

ggplot(data=df, aes(x=x, y=y)) + geom_point()

R Code chunk features

Create Markdown code from R

HTML 출력물에서 chunk안의 코드를 숨기려면 {r} 안에 echo=FALSE옵션을 입력하고(default는 TRUE)
결과물을 출력 테두리없이 직접적으로 쓰려면 results='asis'옵션을 사용한다.(default는 미사용) 아래 두개의 코드는 results의 옵션을 사용한 것과 안한것을 비교한것이다.

results=‘asis’ 옵션사용

Here are some dot points

  • The value of y[1] is 0.59
  • The value of y[2] is 2.29
  • The value of y[3] is 1.14

results=‘asis’ 옵션 미사용

## Here are some dot points
## * The value of y[1] is 0.59
## * The value of y[2] is 2.29
## * The value of y[3] is 1.14

Create Markdown table code from R

xy
10.59
22.29
31.14
45.41
55.22
65.77
75.89
88.8
99.51
109.12
  • 이 코드에서는 results 옵션을 주지 않으면 HTML이 생성되지 않음

Control output display

HTML출력물에서 input 코드를 출력시키지 않으려면 echo=FALSE라는 옵션을 사용하였다.
그리고 output에서 처음에 나오는 문자(default는 ##)를 제거하거나 변경하기 위해서는
comment="문자" 옵션을 설정해준다. 다음에는 output의 ##을 제거하겠다.

  x    y
1 1 0.59
2 2 2.29
3 3 1.14
4 4 5.41
5 5 5.22
6 6 5.77

Control figure size

이 옵션은 HTML에 출력되는 그림의 싸이즈를 조절하는 chunk옵션이다.
fig.width와 fig.hight 옵션을 사용한다.

plot(x)

Basic markdown functionality

Dot Points

simple dot points :

  • Point 1
  • Point 2
  • Point 3

Numeric dot points :

  1. Number 1
  2. Number 2
  3. Number 3

Nested dot points :

  • A
    • A.1
    • A.2
  • B
    • B.1
    • B.2

Equations

문서에 수학수식을 작성할 수 있다. 수식은 LaTex 수식입력 체계에 의해 작성되어진다.
달러($)와 달러($)사이에 수식을 작성하면 HTML문서에서 수식을 입력한 자리에 그대로 나타나고 $$ 수식 $$사이에 수식을 입력하면 수식만 따로 문서의 중앙에 출력되게 된다.

yi=α+βxi+ei

11+exp(x)

Tables

테이블은 다음과 같이 표현할 수 있다.

ABC
1MaleBlue
2FemalePink

Images

이미지 파일은 URL로부터 불러올 수 있고 자신의 컴퓨터로 부터도 불러올 수 있다.
위에서 text에 링크를 거는것과 비슷하게 []안에 image주석을 달고 []앞에 !표를 붙여준다.
즉, [] 이와 같이 표현하고 그리고 ()안에 image주소를 입력하거나 image파일 경로를 입력한다.

  • 내 컴퓨터에서 파일경로로 불러올때 잘 불러와 지지 않는 다면,
    R working directory에 image를 넣고 불러오면 된다.

URL로 부터 image 불러오기

rstudio

내컴퓨터로부터 image 불러오기

rstudio2

  • 참고로 본인의 pc에서 이 본문 전체 코드를 돌려본다면 rstudioimg파일이 없다면 error가 날것이다.
    위 코딩을 제거하던지 자신의 directory에 rstudioimg 이미지 파일을 생성하면 된다.

첫 포스팅으로 R markdown을 공부하면서 이용해 봤는데
익숙해 진다면, 보고서 작성시 정말 편리하게 다가 올 것 같다.
아직 나도 R markdown에 미숙하기 때문에 앞으로 블로그 포스팅을
markdown으로 해가면서 익숙해 지고 배우고, 더 새로운 것을 알게되면,
계속적으로 버전을 업데이트 하고자한다.


'빅데이터 > R' 카테고리의 다른 글

NLP 이용한 주요 워드카운트  (0) 2017.02.01
R Markdown 문법  (0) 2017.01.09
R정복 2일차  (0) 2017.01.09
R정복 1일차  (0) 2017.01.05
댓글
댓글쓰기 폼
공지사항
Total
5,474
Today
0
Yesterday
3
TAG
more
«   2019/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
글 보관함