B.1 knitr

knitr 패키지는 “Literate Programming”(Knuth 1984)이라는 아이디어를 기반으로 설계되었습니다. 소스 문서의 텍스트와 프로그램 코드를 혼합합니다. knitr가 문서를 컴파일할 때 프로그램 코드(코드 청크)가 추출되어 실행되고 프로그램 출력이 출력 문서의 원본 텍스트와 함께 표시됩니다. 섹션 2.3에서 기본 구문을 소개한 바 있습니다.

R Markdown은 knitr에서 지원하는 유일한 소스 형식이 아닙니다. 기본 아이디어는 다른 컴퓨팅과 저작 언어에 적용될 수 있습니다. 예를 들어 knitr은 R과 LaTeX (*.Rnw 문서), R + HTML (*.Rhtml) 등의 조합도 지원합니다. C++, Python, SQL 등과 같은 다른 컴퓨팅 언어들도 knit를 사용할 수 있습니다. 뿐만 아니라, 아래는 간단한 예로, http://rmarkdown.rstudio.com/authoring_knitr_engines.html에서 자세한 내용을 확인할 수 있습니다.

​```{python}
x = 'Hello, Python World!'
print(x.split(' '))
​```

Python 사용자는 IPython 또는 Jupyter 노트북 (https://jupyter.org)에 익숙할 수 있습니다. 실제로 R Markdown은 Jupiter Notebook으로도 사용할 수 있으며 몇 가지 추가 이점이 있습니다. 자세한 내용은 다음 블로그 게시물을 참조하십시오 : https://blog.rstudio.org/2016/10/05/r-notebooks/.

문서에 리터럴 청크를 표시하려면 청크 헤더 앞에 빈 문자열 (``)을 생성하는 인라인 표현식을 추가하고 코드 청크를 네 개의 백틱으로 래핑하면됩니다.13 예를 들면 다음과 같습니다:

​````
```{r}
# a literal code chunk
​```
​````

문서가 컴파일되면 인라인 표현식이 사라지고 다음이 표시됩니다.

​```{r}
# a literal code chunk
​```

일반적으로 문서를 컴파일할 때 knitr 함수를 직접 호출할 필요가 없습니다. rmarkdownknitr을 호출하기 때문입니다. 소스 문서를 다른 형식으로 더 이상 변환하지 않고 컴파일하려면 knitr::knit() 함수를 사용할 수 있습니다.


  1. 목록과 같은 다른 환경에서 리터럴 코드 청크를 표시하려면 들여쓰기 규칙을 따르십시오↩︎