2

Rのknitrパッケージを使用して、データフレームをレポートに変換しようとしています。問題は、入力データに多くの変動があることです。目的は、1行のテキストを印刷することです(データフレームから取得し、その後にグラフを表示します。これもデータフレームから取得します)。

次のコードは、同じものの簡略化されたバージョンです。PDFファイルでは出力しません。

\documentclass{report}
\usepackage{forloop}
\newcounter{tmp}

\begin{document}
\newcommand{\Brep}{$\Sexpr{A}$}

\forloop{tmp}{1}{\value{tmp} < \Brep} {\Brep}

\end{document}

ログをチェックし、部分を削除する際に、forloopの状態で\FBrep部分を評価できないknitr/latexに絞り込みました。

これを回避する方法はありますか?また、次のステップでは、次のように、同様の方法でincludegraphicsを使用する必要があります。

\includegraphics{\Brep.PNG}

これがRTFM素材の場合は申し訳ありません。私は本当に新しいです、そして私はたくさん見回しました。ありがとう

4

1 に答える 1

3

knitrLaTeXにまたはを呼び出させることはできませんR。ドキュメントのRコードをknitr解析し、コードを評価します。次に、すべてがR側で完全に実行され、Rとは関係のない静的なLaTeX出力ドキュメントが得られます。したがって、何かをプログラムしたい場合は、Rコードで実行してください

プログラムのRへの直接翻訳:

\documentclass{report}
\begin{document}

<<results='asis', echo=FALSE>>=
for (tmp in 1:A) {
  cat(tmp)
}
@

<<results='asis', echo=FALSE>>=
for (tmp in 1:A) {
  cat(sprintf('\\includegraphics{%d.PNG}', tmp))
}
@
\end{document}

ただし、次のように簡略化できます。

\documentclass{report}
\begin{document}
\Sexpr{paste(1:A, collapse = '')}
\Sexpr{paste(sprintf('\\includegraphics{%d.PNG}', 1:A), collapse = '')}
\end{document}

また、これはドキュメントにプロットを挿入するための理想的なアプローチではない可能性があることにも注意する必要があります(通常、注意する必要はありません\includegraphics{})。次のような自動化に注意する必要があります。

\documentclass{report}
\begin{document}
<<>>=
for (i in 1:5) {
  hist(mtcars[, i])
}
@
\end{document}
于 2013-02-04T05:49:22.720 に答える