gpt4 book ai didi

r - 提取R函数的代码,用于控制宽度的knitr

转载 作者:行者123 更新时间:2023-12-04 11:29:26 26 4
gpt4 key购买 nike

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

<<test, code=formatR::usage(lm), eval=FALSE>>=
@
不知道有没有这样的函数来获取 lm重定向到 knitr的函数代码.
已编辑
得到了 lm的代码要在 knitr 中使用的函数使用以下代码(如@JoshO'Brien 所建议):
<<test, code=lm, eval=FALSE>>=
@
但是想不通怎么控制 widthknitr输出。

最佳答案

要嵌入某些函数的“整洁”定义,请参阅 Yihui's self-explanatory existing code ,

<<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)>>=
@

Example Rnw and Rmd Gist

当输出到 Latex 时,有时会出现让换行符保持在页边距内的问题。这是一个已知问题,有多个修复程序,但存在各种缺陷。就像这样,您可以在边距内获得完整的功能,但没有漂亮的色彩……这完全是您在解决方案中投入的权衡和/或努力的问题。 :)
\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}

enter image description here

关于r - 提取R函数的代码,用于控制宽度的knitr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30601602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com