2

load("file.R")我将 R 和 Rnw 文件分开,然后在第一个 Sweave 块中加载 R 数据/绘图。有没有一种方法可以在不执行所有代码的情况下将源 R 文件打印到附录?(即,代码足够慢,我不想把source()它放在echo=TRUE一块)。

谢谢!


更新——实际上,我认为我的source()想法行不通。

4

4 回答 4

6

使用 Latex 包怎么样?
添加到您的标题
\usepackage{fancyvrb}
然后
\VerbatimInput{yourRfile.R}

于 2010-12-06T04:44:01.967 回答
3

您可以使用highlightpackage 输出格式良好、色彩丰富的代码:

highlight("myRfile.R", renderer = renderer_latex(document = F))

但是不要忘记在您的乳胶文档中放入您使用 document=T 获得的冗长序言。

您可以直接试验代码:

highlight(output="test.tex", 
          parser.output = parser(text = deparse(lm)),
          renderer =  renderer_latex(document = T))

并得到

替代文字

于 2010-12-06T08:29:25.673 回答
2

分离 R 和 Rnw 文件有点违背文学编程的目的。我自己的方法是在文本的适当位置包含代码块。如果我的听众对代码不感兴趣,那么我可能会将其标记为

<<foo, echo=FALSE>>=
x <- 1:10
@

我可能会在附录中将代码组装为

<<appendix-foo, eval=FALSE>>=
<<foo>>
@

我承认这有点混乱和容易出错(被遗忘的块)。很快就想将文档与支持材料(数据集、有用的辅助函数、非 R 脚本)捆绑到一个 R 包中,这些并不难创建。构建包会自动创建 pdf 和 Stangle'd R 文件,这正是您想要的。包构建可能是一个缓慢的过程,但安装包不需要重新构建小插图,因此对于您将包提供给谁来说都是快速和方便的。

为了处理格式/文本,我使用全局选项\SweaveOpts{eval=FALSE}

于 2011-05-31T16:47:41.123 回答
2

我通常通过以下方式解决这个问题:

\begin{appendix}

\section{Appendix A}

\subsection{R session information}

<<SessionInforamtaion,echo=F,eval=T,results=tex>>=

toLatex(sessionInfo())

@


\subsection{The simulation's source code}

<<SourceCode,echo=F,eval=T>>=

Stangle(file.path("Projectpath","RnwFile.Rnw"))

SourceCode <- readLines(file.path("Projectpath","Codefile.R"))

writeLines(SourceCode)

@
\end{appendix} 

使用它,您必须考虑每行的最大字符数。

于 2011-05-12T10:00:21.947 回答