knitr是一个通用的文学编程引擎(literateprogramming),其轻量级的API旨在让用户完全控制输出,而无需繁重的编码工作。它将许多功能结合到一个包中,并根据作者对Sweave的日常使用进行了一些微调。
受 Sweave启发,knitr 包被设计为一个使用R生成动态报告的透明引擎。Sweave是文学编程的一种巧妙而新颖的实现,它的主要问题是难以扩展。
knitr旨在让用户可以访问处理文学编程文档的过程的每个部分。
透明度意味着用户可以完全访问每一块输入和输出,例如,1+2在R终端产生[1]3,knitr可以让用户决定是否把1+2放在\begin{verbatim}和\end{verbatim}之间,或者<divclass="rsource">和</div>,并把[1]3放在\begin{Routput}和\end{Routput};细节见挂钩页面。knitr试图通过运行R代码与用户的期望保持一致,就像它被粘贴在R终端一样,例如,qplot(x,y)直接产生绘图(不需要print()它),并且一个代码块中的所有绘图将被默认写入输出。pgfSweave和cacheSweave等包为Sweave增加了有用的功能(高质量的tikz图形和缓存),knitr简化了实现。knitr的设计允许任何输入语言(如R、Python和shell脚本)和任何输出标记语言(如LaTeX、HTML、Markdown、AsciiDoc和reStructuredText)。
评论