R Markdown, Knitr, Pandoc 및 Bookdown의 기능 간의 관계는 무엇입니까?
구체적 R 임베디드 코드 (예를 들어, 마크 업 문서로 변환 이러한 패키지의 '분업'무엇 .Rnw
이나 .Rmd
최종 출력으로)은 (예 .pdf
또는 .html
)? 그리고 Knitr을 사용하여 RMarkdown을 처리하는 경우 rmarkdown
패키지는 무엇 을하며 markdown package
?
답변:
Pandoc은 문서 변환기입니다. 그것은 다음과 같은 많은 다른 형식으로 다른 마크 업 형식의 숫자로 변환 할 수 있습니다 .doc
, .pdf
등
Pandoc은 GUI가없는 명령 줄 도구입니다. R과는 별개의 독립적 인 소프트웨어입니다. 그러나 rmarkdown
문서 변환에 의존 하기 때문에 R Studio와 함께 번들로 제공됩니다 .
Pandoc은 문서를 변환 할뿐만 아니라 기본 마크 다운 언어 위에 기능을 추가하여 더 복잡한 출력을 지원할 수 있도록합니다.
R Markdown은 markdown을 기반으로합니다.
Markdown은 HTML 및 기타 여러 형식으로 변환 할 수 있도록 설계된 일반 텍스트 형식 지정 구문을 사용하는 경량 마크 업 언어입니다. 마크 다운 파일은 일반적으로 확장자가 부여 된 일반 텍스트 파일입니다 .md
.
HTML 및 Latex와 같은 다른 마크 업 언어와 마찬가지로 R과 완전히 독립적입니다.
명확하게 정의 된 Markdown 표준이 없습니다. 이로 인해 여러 공급 업체가 자체 언어 변형을 작성하여 결함을 수정하거나 누락 된 기능을 추가함에 따라 단편화가 발생했습니다.
markdown
.Rmd
파일을 HTML 로 변환하는 R 패키지입니다 . rmarkdown
훨씬 더 많은 기능을 제공하는 의 이전 버전입니다 . 더 이상 사용하지 않는 것이 좋습니다.
R Markdown은 markdown 구문의 확장입니다. R Markdown 파일은 일반적으로 파일 확장자가 .Rmd
. 그것들은 나중에 실행될 수있는 방식으로 R 코드를 삽입 할 수있는 마크 다운 구문의 확장을 사용하여 작성됩니다.
rmarkdown
패키지에서 처리 될 것으로 예상되기 때문에 Pandoc 마크 다운 구문 을 R 마크 다운 파일의 일부로 사용할 수 있습니다. 이것은 원시 HTML / Latex 및 테이블과 같은 추가 기능을 제공하는 원래 마크 다운 구문의 확장입니다.
R 패키지 rmarkdown
는 .Rmd
파일을 다양한 형식으로 처리하고 변환하는 라이브러리입니다 .
핵심 기능은 rmarkdown::render
어떤 pandoc의 어깨에 서있다 . 이 함수 는 pandoc을 사용하여 입력 파일을 지정된 출력 형식으로 '렌더링합니다. 입력에 뜨개질 knitr::knit
이 필요한 경우 pandoc 전에 호출됩니다.
RMarkdown 패키지의 목표는 Pandoc 옵션을 사용자 정의하기 위해 합리적으로 좋은 기본값과 R 친화적 인 인터페이스를 제공하는 것입니다. .
RMarkdown 파일 상단에 표시되는 YAML 메타 데이터는 특히 rmarkdown::render
빌드 프로세스를 안내하기 위해 옵션을에 전달 하는 것입니다.
RMarkdown은 마크 다운 구문 만 다룹니다. .Rhtml
또는 .Rnw
파일 을 변환 하려면에 내장 된 편의 기능 ( Knitr
예 : knitr::knit2html
및)을 사용해야합니다.knitr:knit2pdf
Knitr는 코드가 포함 된 일반 텍스트 문서를 가져 와서 코드를 실행하고 결과를 문서로 다시 'knits'합니다.
예를 들어,
.Rmd
) 표준 인하 파일에 파일 ( .md
).Rnw
(Sweave) 에에 파일 .tex
형식입니다. .Rhtml
HTML로로 파일.핵심 기능은 knitr::knit
기본적으로 입력 문서를보고 Rnw, Rmd 등 어떤 유형인지 추측합니다.
이 핵심 기능은 다음 세 가지 역할을 수행합니다.-입력 문서를보고 사용자가 평가하려는 코드 부분을 감지하는 소스 파서. -이 코드를 평가하는 코드 평가 기-원시 출력 유형에서 해석 할 수있는 형식으로 평가 결과를 문서에 다시 쓰는 출력 렌더러. 예를 들어 입력 파일이 .Rmd
이면 출력 렌더는 코드 평가의 출력을 .md
형식으로 표시합니다.
Knitr는 문서 형식간에 변환 하지 않습니다 ( 예 : a .md
를 .html
. 그러나 다른 라이브러리를 사용하여이를 수행하는 데 도움이되는 몇 가지 편리한 기능을 제공합니다. 패키지를 사용하는 rmarkdown
경우이 기능이로 대체되었으므로 무시해야합니다 rmarkdown::render
.
예를 들면 knitr:knit2pdf
다음과 같습니다. '입력 Rnw 또는 Rrst 문서를 편직하고 texi2pdf 또는 rst2pdf를 사용하여 PDF로 컴파일'합니다.
혼란의 잠재적 원천이다 knitr::knit2html
, 이는 "니트 입력 인하 소스와 호출하는 편리한 기능입니다 markdown::markdownToHTML
HTML로 결과를 변환 할 수는." markdown
패키지가 패키지로 대체되었으므로 이제 레거시 기능 rmarkdown
입니다. 이 참고 사항을 참조 하십시오 .
bookdown 패키지는 R Markdown 위에 구축되었으며 Markdown 구문의 단순성과 여러 유형의 출력 형식 (PDF / HTML / Word /…) 가능성을 상속합니다.
다중 페이지 HTML 출력, 번호 매기기 및 그림 / 표 / 섹션 / 방정식 상호 참조, 부품 / 부록 삽입, GitBook 스타일 ( https://www.gitbook.com )을 가져 와서 우아하고 매력적인 HTML을 만드는 기능을 제공합니다. 책 페이지.
knitr_opts
(항상 호출되는 것을 잊어 버립니다), 사용자 지정 pandoc 인수, 추가 yam 파일 또는 사용자 지정 pandoc 템플릿 ... 가끔은 정글 같은 느낌이 듭니다. 특히 LaTeX를 체인에 추가하면 더욱 그렇습니다.
pandoc
단계도없고 마법도 적고 혼란도 적습니다. 가파른 LaTeX 학습 곡선입니다. 제 생각에는 Rmarkdown은 간단한 기본 항목에 만족할 때 좋습니다. 그러나 조정해야하는 즉시 복잡성이 빠르게 증가합니다.