RファイルとRnwファイルを分離してload("file.R")
から、最初のSweaveチャンクにRデータ/プロットをロードします。すべてのコードを実行せずに、ソースされたRファイルを付録に印刷する方法はありますか?source()
(つまり、コードが十分に遅いので、echo=TRUE
チャンクにまとめたくありません)。
ありがとう!
更新-実際、私のsource()
アイデアはうまくいかないと思います。
ラテックスパッケージを使用するのはどうですか?
ヘッダーに追加します
\usepackage{fancyvrb}
次に、
\ VerbatimInput {yourRfile.R}
packageを使用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))
そして、
私は通常これを次のように解決します:
\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}
これを使用して、1行あたりの最大文字数を考える必要があります。
RファイルとRnwファイルを分離すると、文芸的プログラミングの目的が損なわれます。私自身のアプローチは、テキストの適切な場所にコードチャンクを含めることです。私の聴衆がコードに興味がない場合、私はそれを次のようにマークするかもしれません
<<foo, echo=FALSE>>=
x <- 1:10
@
私は付録のコードを次のように組み立てるかもしれません
<<appendix-foo, eval=FALSE>>=
<<foo>>
@
私が認めるのは、ちょっとしたごちゃごちゃしてエラーが発生しやすい(チャンクを忘れた)ことです。ドキュメントとサポート資料(データセット、便利なヘルパー関数、非Rスクリプト)をRパッケージにバンドルしたいのですが、これらを作成するのは難しくありません。パッケージをビルドすると、pdfとStangle'dRファイルが自動的に作成されます。これはまさにあなたが望むものです。パッケージの作成には時間がかかる場合がありますが、パッケージのインストールではビネットを再作成する必要がないため、パッケージを提供する相手にとっては迅速で便利です。
フォーマット/テキストをいじるには、グローバルオプションを使用します\SweaveOpts{eval=FALSE}
。