2

我开始学习 R 和 Sweave 并且在过去的几个小时里试图找出一个问题,根据我的 Google-fu 来说,这个问题似乎相当不为人知或不常见(因为我只发现了两个对这个问题的引用) .

即,在 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 回答