提取R函数的代码用于控制宽度的针织物

我们可以使用formatR::usage(lm)来获取lm函数的参数,并可以使用以下命令将输出重定向到knitr

<<test, code=formatR::usage(lm), eval=FALSE>>=
@

我想知道是否有这样的函数让lm函数代码重定向到knitr

编辑

使用下面的代码获得了用于knitrlm函数的代码(如@ JoshO'Brien所建议的):

<<test, code=lm, eval=FALSE>>=
@

但无法弄清楚如何控制knitr输出的width


为了嵌入一些函数的“整齐”定义,请参阅Yihui的自解释现有代码,

<<insert-fun, echo=FALSE>>=
insert_fun = function(name) {
  read_chunk(lines = capture.output(dump(name, '')), labels = paste(name, 'source', sep = '-'))
}
@

<<insert-lm, echo=FALSE>>=
insert_fun('lm')
@

<<lm-source, eval=FALSE, tidy=TRUE, tidy.opts=list(width.cutoff=30)>>=
@

示例Rnw和Rmd Gist


当输出到胶乳时,有时会遇到换行符停留在页边距内的问题。 它是一个有多个修复程序的已知问题,具有各种缺陷。 就像你在边缘获得完整功能但没有漂亮色彩的那一样......这完全是你在解决方案中进行折衷和/或努力的问题。 :)

documentclass{article}

usepackage{listings}
usepackage{inconsolata}

<<echo=FALSE>>=
options(width=60)

listing <- function(x, options) {
  paste("begin{lstlisting}[language=R,basicstyle=ttfamily,breaklines=true]n",
    x, "end{lstlisting}n", sep = "")
}
knit_hooks$set(source=listing, output=listing)

insert_fun = function(name) {
  read_chunk(lines = capture.output(dump(name, '')), labels = paste(name, 'source', sep = '-'))
}

@

<<insert-lm, echo=FALSE>>=
insert_fun('lm')
@

begin{document}

<<lm-source, eval=FALSE, tidy=TRUE, tidy.opts=list(width.cutoff=50)>>=
@

end{document}

在这里输入图像描述

链接地址: http://www.djcxy.com/p/26847.html

上一篇: Extracting Code of R function to be used in knitr with controled width

下一篇: How to loop iframes using jquery?