3.1 R 마크다운의 작동 원리

R Markdown은 풍부하고 완벽하게 문서화되고 재현 가능한 분석을 생성하는 쉬운 방법을 제공합니다. 사용자는 분석을 처음부터 끝까지 재현하는 데 필요한 모든 주석, R 코드 및 메타 데이터가 포함 된 단일 파일을 공유 할 수 있습니다. R Markdown을 사용하면 HTML 또는 LaTeX 코드를 알지 못하거나 Microsoft Word DOCX 파일에서 바로 서식을 가져 오는 데 소란스럽지 않고도 R 코드 청크를 Markdown 텍스트와 결합하고 멋진 형식의 HTML, PDF 또는 Word 파일을 생성 할 수 있습니다.

하나의 R Markdown 파일은 다양한 형식을 생성 할 수 있으며이 모든 작업은 몇 비트 형식의 단일 텍스트 파일을 사용하여 수행됩니다. 일단 익숙해지면 R Markdown 문서를 작성하는 것이 얼마나 쉬운 지 유쾌하게 놀랄 것입니다.

3.1.1 개요

R Markdown은 데이터 과학을위한 저작 프레임 워크를 제공합니다. 단일 R Markdown 파일을 두 가지 모두에 사용할 수 있습니다.

  • 코드 저장 및 실행
  • 청중과 공유 할 수있는 고품질 보고서 생성

R Markdown 문서는 완전히 재현 가능하며 수십 개의 정적 및 동적 출력 형식을 지원합니다. 이 1 분짜리 비디오는 R Markdown으로 무엇을 할 수 있는지에 대한 빠른 둘러보기를 제공합니다.

3.1.2 설치

나머지 R과 마찬가지로 R Markdown은 무료이며 오픈 소스입니다. 다음을 사용하여 CRAN에서 R Markdown 패키지를 설치할 수 있습니다.

install.packages("rmarkdown")

3.1.3 시작하다

왼쪽 링크는 R Markdown에 대한 빠른 둘러보기를 제공합니다. 상단의 링크는 R Markdown 문서의 예와 다양한 R Markdown 주제에 대한 심층 토론을 제공합니다.

다음 리소스가 도움이 될 수도 있습니다.

3.1.4 작동 원리

확장명이 .txt 는 일반 텍스트 파일이며, R Markdown 파일의 확장자는 .Rmd입니다.

img

Rmd 파일에는 세 가지 유형의 콘텐츠가 포함되어 있습니다.

  • --- ---로 둘러싸인 YAML 헤더 (선택 사항)
  • ``` ```로 둘러싸인 R 코드 청크
  • 간단한 텍스트 서식과 혼합된 텍스트

3.1.4.1 노트북 인터페이스

RStudio IDE에서 파일을 열면 R 용 노트북 인터페이스 가됩니다 . img아이콘 을 클릭하여 각 코드 청크를 실행할 수 있습니다 . RStudio는 코드를 실행하고 결과를 파일과 함께 인라인으로 표시합니다.

img

3.1.4.2 렌더링 출력

파일에서 보고서를 생성하려면 다음 render명령을 실행하십시오 .

library(rmarkdown)
render("1-example.Rmd")

더 좋은 방법은 RStudio IDE의 “Knit”버튼을 사용하여 파일을 렌더링하고 한 번의 클릭 또는 키보드 단축키 (⇧⌘K)로 출력을 미리 볼 수 있습니다.

img

R Markdown은 선택한 텍스트, 코드 및 .Rmd 파일의 결과를 포함하는 새 파일을 생성합니다.

새 파일은 완성 된 웹 페이지 , PDF , MS Word 문서, 슬라이드 쇼 , 노트북 , 유인물 , , 대시 보드 , 패키지 비 네트 또는 기타 형식 일 수 있습니다.

3.1.5 작동 원리

img

  • Rmd 문서를 실행(render)하면 R Markdown 은 모든 코드 청크를 실행하고 코드와 해당 출력을 포함하는 새 마크 다운 (.md) 문서를 생성하는 knitr에 .Rmd 파일을 공급합니다 .

  • knitr에 의해 생성된 마크 다운 파일은 완성된 형식을 생성하는 pandoc에 의해 처리됩니다 .

이것은 복잡하게 들릴 수 있지만 R Markdown은 위의 모든 처리를 단일 render함수 로 캡슐화하여 매우 간단하게 만듭니다 .

3.1.6 코드 청크

아래의 R Markdown 파일에는 세 개의 코드 청크가 있습니다.

img

다음을 사용하여 이러한 청크를 파일에 빠르게 삽입 할 수 있습니다.

  • 키보드 단축키 + - [I] (OS X : Cmd + Option + I** )
  • img에디터 툴바 의 Add Chunk 명령

또는 청크 구분 기호 ```{r}와 ```

.Rmd 파일을 렌더링할 때 R Markdown은 각 코드 청크를 실행하고 최종 보고서의 코드 청크 아래에 그 결과를 포함합니다.

3.1.6.1 청크 옵션

청크 출력은 knitr 옵션 , {}청크 헤더에 설정된 인수로 사용자 정의할 수 있습니다. 위에서 우리는 다섯 가지 인수를 사용합니다.

  • include = FALSE완성된 파일에 코드와 결과가 나타나지 않도록합니다. R Markdown은 여전히 청크의 코드를 실행하며 결과는 다른 청크에서 사용할 수 있습니다.
  • echo = FALSE코드를 차단하지만 완성된 파일에 결과가 표시되지는 않습니다. 이것은 그림을 포함하는 유용한 방법입니다.
  • message = FALSE 코드에 의해 생성된 메시지가 완성된 파일에 나타나지 않도록 합니다.
  • warning = FALSE 코드에 의해 생성 된 경고가 완료된 항목에 나타나지 않도록 합니다.
  • error = TRUE 코드에 의해 생성된 에러 메시지를 출력합니다. 코드 청크에 에러가 있으면 knit 가 진행되지 않습니다. 이때, 이 코드 청크의 에러를 출력하고 knit 가 작업을 계속 진행하게 해 줍니다.
  • fig.cap = "..." 그래픽 결과에 캡션을 추가합니다.

knitr 청크 옵션의 전체 목록은 R Markdown 참조 가이드참조하십시오 .

3.1.6.2 글로벌 옵션

파일의 모든 청크에 적용되는 전역 옵션을 설정하려면 knitr::opts_chunk$set코드 청크를 호출하십시오 . Knitr는 전달하는 각 옵션을 knitr::opts_chunk$set개별 청크 헤더에서 덮어 쓸 수있는 전역 기본값으로 취급합니다.

3.1.6.3 캐싱

긴 계산으로 인해 문서 렌더링에 시간이 많이 걸리는 경우 knitr 캐싱을 사용하여 성능을 향상시킬 수 있습니다. Knitr 청크 및 패키지 옵션 은 캐싱 작동 방식 설명하고 캐시 예제 는 추가 세부 정보를 제공합니다.

3.1.7 인라인 코드

r코드를 .Rmd 파일의 텍스트 영역에 삽입하여 그 결과를 텍스트와 함께 출력할 수 있게 해 줍니다. 아래 파일은 heat.colors를 반환하는 rcolorFunc 변수를 텍스트 영역헤더 영역r colorFunc 형태로 두 번 사용합니다.

img

이렇게 해서 텍스트 내에 다른 기능을 참조하도록 출력하여 보고서를 쉽게 업데이트 할 수 있습니다.

img

R Markdown은 항상

  • 인라인 코드의 결과를 표시하지만 코드는 표시하지 않습니다.
  • 결과에 관련 텍스트 서식을 적용할 수 있습니다.

결과적으로 인라인 출력은 주변 텍스트와 구별할 수 없습니다. 인라인 표현식은 knitr 옵션을 사용하지 않습니다.

3.1.8 코드 언어

이 .Rmd 파일이 bash 및 python에서 코드를 실행하는 방법에 유의하십시오.

img

knitr 는 R 외에 여러 언어로 코드를 실행할 수 있습니다. 사용 가능한 언어 엔진 중 일부는 다음과 같습니다.

  • 파이썬
  • SQL
  • 세게 때리다
  • Rcpp
  • Stan
  • 자바 스크립트
  • CSS

대체 언어 엔진을 사용하여 코드 청크를 처리하려면 r청크 선언의 시작 부분에있는를 언어 이름으로 바꿉니다.

​```{bash}
​```

같은 청크 옵션을 참고 echo하고 results파이썬 같은 언어 엔진을 사용하는 경우 모두 유효합니다.

knitr 언어 엔진 에서 R Markdown과 함께 다른 언어를 사용하는 방법에 대해 자세히 알아보십시오 .

3.1.9 매개 변수

R Markdown 문서에는 보고서를 렌더링할 때 값을 설정할 수있는 하나 이상의 매개 변수가 포함될 수 있습니다.

예를 들어, 아래 파일에서 data는 플로팅할 데이터 세트를 결정하는 매개 변수를 사용하고 있습니다.

img

3.1.9.1 매개 변수 선언

매개 변수는 YAML 헤더 내에서 params필드를 사용하여 선언됩니다 . 예를 들어, 위의 파일은 매개 변수를 생성하고 data 기본값으로 "hawaii" 를 할당하고 있습니다 .

3.1.9.2 코드에서 매개 변수 사용

매개 변수는 knit 환경 내에서 params 라는 읽기 전용 목록으로 사용할 수 있습니다. 코드에서 매개 변수에 액세스하려면을 params$<parameter name> 형식으로 호출하면 됩니다 .

3.1.9.3 매개 변수 값 설정

새 매개 변수 값 세트를 사용하는 보고서를 작성하려면 renderparams인수를 추가하십시오 . 여기에서 aleutians데이터 세트를 사용하도록 보고서를 수정하기 위해서는 다음과 같이 합니다.

render("5-parameters.Rmd", params = list(data = "aleutians"))

img

더 좋은 방법은 RStudio IDE knit 버튼 옆에있는 드롭 다운 메뉴에서 “Knit with Parameters”옵션을 클릭하여 매개 변수를 설정하고, 사용자 친화적인 단일 단계에서 보고서를 미리 볼 수 있습니다.

img

매개 변수는 다양한 키 입력에 대해 고유한 값을 사용하여 동일한 보고서를 다시 렌더링하려는 경우에 유용합니다. 예를 들면 다음과 같습니다.

  • 부서 또는 지역별 보고서 실행.
  • 특정 기간을 다루는 보고서 실행.
  • 별개의 핵심 가정 세트를 위해 여러 버전의 보고서를 실행합니다.

매개 변수화 된 보고서 에서 매개 변수에 대해 자세히 알아보십시오 .

3.1.10 테이블

기본적으로 R Markdown은 데이터 프레임행렬을 R 터미널에 있는 것처럼 (고정 폭 글꼴로) 표시합니다. 데이터를 추가 형식으로 표시하려면 knitr::kable아래 .Rmd 파일에서와 같이 함수를 사용할 수 있습니다.

img

results='asis'청크 옵션 사용에 유의하십시오 . 이것은 원시 테이블 출력이knitr에 의해 더 이상 처리되지 않도록하기 위해 필요합니다.