我将R和Rnw文件分开,然后在第一个Sweave块中加载带有load("file.R")
的R数据/图。有没有办法可以将源文件打印到附录而不执行所有代码? (即,代码足够慢,我不想在source()
块中echo=TRUE
。
谢谢!
更新 - 实际上,我认为我的source()
想法不起作用。
答案 0 :(得分:5)
使用乳胶包装怎么样?
添加到标题中
\ usepackage {fancyvrb}
然后
\ VerbatimInput {yourRfile.R}
答案 1 :(得分:3)
您可以使用highlight
包输出格式正确,颜色鲜艳的代码:
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))
得到
答案 2 :(得分: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}
使用此功能,您必须考虑每行的最大字符数。
答案 3 :(得分:2)
将R和Rnw文件分开会破坏文字编程的目的。我自己的方法是将代码块包含在文本中的适当位置。如果我的观众对代码不感兴趣,那么我可能会将其标记为
<<foo, echo=FALSE>>=
x <- 1:10
@
我可能会在附录中汇编代码
<<appendix-foo, eval=FALSE>>=
<<foo>>
@
我承认这是一个很容易出错并且容易出错(被遗忘的大块)。人们很快就想将文档与支持材料(数据集,有用的辅助函数,非R脚本)捆绑到R包中,这些并不难创建。构建包会自动创建pdf和Stangle'd R文件,这正是您想要的。包装构建可能是一个缓慢的过程,但安装包不需要重建小插图,因此对于您提供包装的任何人来说都是快捷方便的。
对于使用格式/文本进行调整,我使用全局选项\SweaveOpts{eval=FALSE}
。