2

私はRとSweaveを学び始めており、ここ数時間、私のGoogle-fuによると、かなり未知または珍しいと思われる問題を見つけようとしています(問題への参照が2つしか見つからなかったため)。 。

つまり、Sweaveでコードチャンクを再利用する場合、先行する空白は許可されていないようです。例えば:

\documentclass{article}

\begin{document}

<<label=fig1boxplot, include=FALSE>>=
boxplot(mpg~cyl,data=mtcars) 
@

\begin{figure}
\centering
<<label=fig1, fig=TRUE, echo=FALSE>>=
<<fig1boxplot>>
@
\end{figure}

\end{document}

で始まる行の前に空白がある場合、期待どおりに機能しません<<(エラーはどの行がインデントされているかによって異なります)。R開発者のメーリングリストで回避策を見つけました。チャンクが再利用される行をインデントできますが(<<figboxplot>>他のチャンクはインデントできません(<<label=...

  • 特に回避策を実装するのは非常に簡単なように思われるため、Sweaveが再利用されたコードチャンクで空白を許可しないのはなぜですか?
  • この問題を回避し、チャンク(またはそれに関するSweaveコード)を好きなだけインデントするにはどうすればよいですか?
4

1 に答える 1

3

簡単な答えは、knitr代わりに使用することです。これにより、コードチャンクのインデントが可能になります。

Sweaveに関するあなたの質問については、答えも短いです:それは設計によるものです(少なくとも今のところ)。私の個人的な経験では、あなたが言ったように、それが実施努力の点で些細なことであっても、それを実現することは難しいです。これがRアドオンパッケージの正当な理由です。

于 2012-11-25T20:10:30.447 に答える