경기도 인공지능 개발 과정/R

R R 마크다운(Rpubs)

agingcurve 2022. 5. 2. 12:27
반응형

R 마크다운을 이용하여 데이터 분석 내용을 별도 문서로 작성해서 공유할 수 있슴

R 마크다운을 이용하면 보고서를 만들 수 있음

 

 

Rpubs는

HTML, WORD, PDF 방식이 있음 (PDF의 경우, 한글 적용이 안됨)

마크다운은 일반 텍스트 기반의 마크업(markup)언이임. 텍스트 서식과 내용을 코드로 작성하여 공유할 때, 사용되며

다른 언어에 비해 문법이 쉽고 HTML 문서로 쉽게 변환이 가능

 

 

설치 후, HTML로 설정을 하면

 

음영 처리된 부분을 코드 청크라 하며 코드를 작성할 수 있음

 

HTML 보고서를 만들 수 있음

 

보고서 화면이 나온다.

 

상단 위 publish를 누르면

Publish를 선택하는 창이 뜨는데, 

RPubs 를 사용하여 공유가 가능함

 

마크다운

기존에 우리가 인터넷 세상에서 보는 웹 페이지( = 결국 문서지..)는 HTML 이라는 Markup(마크업) 언어인데,

HTML 을 제대로 쓰려면 태그 등을 알아야 하는 부담이 있다.

이러한 Markup 언어의 단점을 보완하기 위해 2004 년 John Grube 가 읽기도 쓰기도 쉬운 Markup 언어를 만들었는데, 이게 바로 Markdown 이며 확장자는 .rm 을 사용.

 

R Markdown, knitr

R 에서도 이 Markdown 을 활용하여 코드, 데이터가 연동된 Dynamic 한 문서를 만들 수 있는데,

이게 바로 'R Markdown'이며 R 와 Markdown 을 체계적으로 연결시켜주는 도구가 'knitr('니터'라고 읽음) 패키지'이다

R Markdown 을 'Markdown 으로 작성되었으며 R 코드가 내장되어 있는 문서'**라고 정의하고 있다.

 

4. R Markdown 파일 형식(.Rmd 파일)으로 저장 (Optional)'에서 .Rmd 파일로 미리 저장한 경우에는,

아래와 같이 콘솔에서 rmarkdown 패키지에 있는 render() 함수를 직접 수동으로 실행하여 HTML 파일로 변환할 수도 있다.

이 경우, 작업 폴더에 myFirstReport.html 파일이 생성되며, 자동으로 문서가 열리진 않는다.

 

R Markdown 템플릿의 구조

위에서 본 R Markdown 템플릿을 조금 더 세부적으로 살펴보면, 아래의 3 가지 파트로 구성됨을 알 수 있다.

① 아래/위가 '---(뺄셈기호 3 개)'로 구분되어 있는 YAML 헤더

② 보통 문서에 쓰이는 텍스트 문장들. 그런데 #나 _italics_같은 markdown 포맷이 포함되어 있음

③ 앞뒤가 '```(백틱기호 3 개)'로 둘러 싸인 R 코드. 코드가 모여 있다고 해서 R code chunk 라고 부른다.

기본 템플릿에는 예시로 '이것은 R Stduio 문서입니다(물론 영어로)' 같은 문장 몇 개와 예시로 정해진 데이터 셋에 대한 summary / plot 등이 포함되어 있음을 알 수 있는데, 이는 그냥 보여주기 위한 용도로, 이를 사용자가 원하는 대로 수정해서 쓰면 된다.

 

Markdown 파일이 HTML 등으로 변환되는 과정

"knit to HTML" 버튼을 클릭하면 RStudio 는 아래의 two step 으로 나눠 R Markdown 파일을 HTML 등으로 변환한다. 이 two step 절차의 장점은, 산출물 포맷을 자유자재로 생성해낼 수 있기 때문.

 

 

참고로

이렇게 두 단계로 나눠져 있는 이유는

RStudio 에서 작업할 때 knit to HTML 을 눌러 컴파일되는 환경과 R 콘솔의 환경이 독립적이기 때문이며, markdown 패키지의 markdownToHtml() 함수 등을 이해하면 더 많은 것을 얻을 수 있다.

two step 을 풀면 설명하면 다음과 같다.

 

A. 코드 실행 및 결과 저장

- R 의 knitr(니터라고 읽음) 패키지가 .Rmd 파일의 모든 R code chunk 를 실행하고, 실행한 코드와 그 결과물을 적재하고 있는 새로운 .md 파일을 만들어 낸다.(temporary)

 

B. HTML(또는 원하는 파일 형식)으로 변환

- 이렇게 knitr 패키지에 의해서 생성된 markdown 파일(.md)은 R 의 markdown 패키지의 pandoc 프로그램에 의해서 최종 결과물로 변환된다.

 

 

 

데이터 연동형 문서 만들기(3) - 알아두면 편한 Markdown 기초 문법

R Markdown 은 Pandoc Markdown 을 이용하는데, Pandoc Markdown 은 Markdown 언어의 여러 종류 중 하나로, Markdown 을 R Markdown 이 이해할 수 있도록 약간 확장한 버전이다.

 

여기서 Pandoc 은 오픈소스 문서의 포맷을 변환할 수 있는 도구.

* 데이터 과학 입문자를 위한 R(재리드 랜더 지음, 원서명은 R for Everyone)에 따르면, Pandoc 은 원래 R 과는 독립적인 툴인데, RStudio 에는 Pandoc 바이너리가 들어 있어 RStudio 를 사용한다면 별도로 이를 다운로드할 필요 없다.

 

Markdown 이 아무리 쉽게 읽고 쓸 수 있게 만들어졌다고는 하나, Markdown 문서를 제대로 작성하기 위해서는 기본적인 문법을 알아야 한다.

이렇게 대표적으로 알아야 할 Markdown 문법에는 header(제목), italicized and bold text(이탈릭체와 볼드체), lists(목록 : word 의 글머리기호 라고 생각하면 됨), hyperlink 등이 있으며, R Markdown 이 이용하는 Pandoc Markdown 중 자주 쓰이는 항목들에 대해 알아보고, 실제 적용해서 산출물에 어떻게 표시되는지에 대해 알아보도록 하자.

 

1. header(제목)

사용 방법 : 제목 문장/단어의 맨 앞에 # 기호를 붙이거나, 그 아래 줄에 ===== 또는 ----- 표시

 

- #(헤시태그, 우물정井) 기호를 하나만 붙이면 가장 폰트 사이즈가 큰 첫 번째 제목이 됨

 

- # 기호는 6 개까지 붙여서 제목의 크기를 표현할 수 있으며, 5 개를 붙이면 일반 폰트와 사이즈가 같고, 6 개를 붙이면 일반 폰트보다 사이즈가 더 작아 짐

- 다른 방법도 있다. 제목으로 표현하려는 문장 또는 단어 아래 줄에 =====를 기재하면 가장 큰 제목, -----를 기재하면 한 단계 작은 제목이 된다. 이 때 =나 -의 개수는 아무거나 다 된다. (1 개씩도 가능)

 

2. italicized and bold text(이탈릭체 및 볼드체)

 

정의 : 폰트를 이탈릭체 또는 볼드체로 강조하기

사용 방법 : - *(별표) 또는 _(언더바) 1 개로 단어나 문장을 둘러싸면 이탤릭 체로 처리됨

- * 또는 _ 2 개로 단어나 문장을 둘러싸면 볼드 체로 처리됨

 

* 이탤릭 체 처리시에는 반드시 *와 문장/단어를 공백 없이 붙여 써야 한다. 공백을 넣어 띄워 쓰기를 하는 경우 아래에서 살펴보겠지만, 글머리기호로 목록 처리가 됨에 유의

 

3. lists(목록 : 글머리기호)

 

정의 : 단락이나 항목을 line 별로 표시하는 목록 생성하기

사용 방법 : - 순서가 없는 글머리 기호 : *(별 표시) / +(플러스 표시) / -(마이너스 표시)와 공백으로 순서 없는 글머리기호를 표시하며, 들여쓰기를 할 수도 있다.

- 순서가 있는 글머리기호 : 숫자/알파벳과 마침표( . ) 또는 ) (우괄호)로 순서 있는 글머리기호를 표시하며, 들여쓰기도 할 수 있다.

* 순서가 있는 글머리기호의 경우에는 . 와 )를 번갈아 사용했을 때 들여쓰기 수준이 달라질 수 있으니 유의

 

 

 

4. 링크 삽입

 

정의 : 특정 단어 등 클릭시 하이퍼링크 연결

사용 방법 :

- 하이퍼링크 주소 표시하는 경우 : 괄호( ) 안에 링크 입력

- 하이퍼링크 주소 표시하지 않는 경우 : 단어나 문장을 대괄호 [ ] 안에 입력하고, 공백 없이 링크를 괄호 ( ) 안에 입력

 

사용 예 :

실행 결과 :

5. 이미지 삽입

정의 : 특정 단어 등 클릭시 하이퍼링크 연결

사용 방법 : ![ ] 뒤에 공백 없이 이미지 경로를 괄호 ( ) 안에 입력한다. [ ] 안에는 이미지의 캡션(=이미지의 설명문)을 넣을 수도 있으며, 이미지 경로에는 http:// 주소를 입력할 수도 있다.

 

* 이미지 파일이 working directory 안에 있다면, 경로 없이 파일명만 기재해도 됨

 

6. 주석 처리

 

정의 : 코드에는 기재되어 있으나, 출력 결과물에서는 보이지 않도록 함

사용 방법 : 주석 처리를 원하는 내용의 앞에는 를 입력

 

사용 예 :

실행결과:

 

7. 수식

정의 : 수학 공식 등을 입력 사용 방법 : R Markdown 에서의 수식은 표준 레이텍(LaTeX) 수학 문법을 이용해서 작성한다. - 디스플레이 수식(한 블록을 차지하도록 표시) : $$(달러기호 2 개)를 수식 앞뒤에 불이면 되며, $$와 수식 사이에는 공백이 있어도 되고, 없어도 된다.

- 인라인 수식(문장 안에서 다른 텍스트와 같이 수식을 표시) : 문장 안에서 수식을 표시하고 싶은 경우에는 $를 1 개씩만 앞뒤로 붙이면 된다.

이렇게 문장 안에서(인라인) 수식 표시시에는 수식과 $ 사이에 공백이 없어야 함에 유의

 

 

 

8. 줄바꿈

정의 : 문단 구분 또는, 문장이 끝나지 않았는데 줄바꿈을 원하는 경우 처리 사용 방법 : - 문장이 끝나고, 단락을 구분하는 경우에는 엔터키를 눌러 빈 줄을 만들면 된다.

- 문장이 끝나지 않았는데 줄 바꿈을 원하는 경우에는, 줄을 바꾸려는 부분의 맨 마지막에 공백을 2 개 입력하고 엔터키를 눌러 줄을 바꾼 후, 나머지 내용을 입력한다.

 

 

9. 수평선 그리기

정의 : 한 줄의 끝까지 선을 그릴 수 있음

사용 방법 : * (별표)나 _ (언더바)를 3 개 이상 입력

 

10. 표 생성

정의 : Markdown 에서도, 표를 그릴 수 있다.

사용 방법 : 컬럼(열)은 | (파이프라인:\키를 시프트 누르고 입력)로 구분하고, 제목 행과 나머지 행은 - (대시)로 구분한다. - 의 개수는 상관 없슴

* R Markdown 에서는 이 방법보다 xtable 또는 knitr 패키지의 kable() 함수 등을 이용해서 보다 손쉽게 표를 만든다

 

여기까지 R Markdown 을 편하게 쓰기 위해서 알아야 할 Markdown 의 기초 문법에 대해서 알아보았다.

Hadley Wickham 이 R for Data Science 에서 언급했듯이, 이런 것들을 가장 쉽게 배우는 방법은 직접 해보는 것이다.

처음에야 시간이 걸리고 좀 어려운 것 같지만, 막상 해보면 별거 아니라 금방 익숙해 지기 때문이다.

 

11. R Code Chunk(코드 청크) 만들기

사용 방법 : R Code 를 ```{r 청크명}과 ``` 사이에 넣으면 된다. 이 때 ```{r 청크명, 청크옵션 1, 청크옵션 2...}과 ```는 줄을 달리 해야 하며, 청크명과 청크 옵션들은 기재하지 않아도 된다. 즉, 그냥 ```{r} 로만 시작해도 된다는 것. - 여기서 `는 백틱 기호이며, 키보드 왼쪽 위의 ESC 버튼 아래에 물결무늬(~)와 같이 있다.

- R Markdown 문서에서 직접 입력해도 되지만, 더 간단하게는 RStuio 의 R Markdown 문서에서 단축키인 ' Ctrl + Alt + I '를 이용할 수도 있다. - R Code Chunk 에서는 주석도 # 로 표현하는 등, 일반적인 R 의 함수와 기능들을 모두 이용 가능

 

실행 결과 : 기본적으로 입력된 코드가 출력되면서 print 나 plot 등의 결과물도 같이 출력된다

 

'경기도 인공지능 개발 과정 > R' 카테고리의 다른 글

R Shiny  (0) 2022.05.03
R 군집분석 & 연관분석  (0) 2022.05.03
R 크롤링 - 2  (0) 2022.04.27
R 웹 크롤링  (0) 2022.04.26
R 웹 크롤링(HTML 기본문법)  (0) 2022.04.26