重用代码块中的空格

时间:2012-11-25 17:45:07

标签: r whitespace sweave

我开始学习R和Sweave并花了最后几个小时试图找出一个问题,根据我的Google-fu,似乎相当不为人知或不常见(因为我发现只有两个引用问题)。

即,在Sweave中重新使用代码块时,您似乎是not allowed any preceding whitespace。例如:

\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开发人员邮件列表上找到了一个work-around,它允许我缩进重用块的行(<<figboxplot>>),但仍然没有任何其他块(<<label=...

  • 为什么Sweave不允许使用重用代码块的空白区域,特别是因为解决方法看起来确实非常简单?
  • 如何处理此问题并根据需要缩进块(或任何Sweave代码)?

1 个答案:

答案 0 :(得分:3)

简短的回答是使用knitr代替,这允许缩进代码块。

关于Sweave的问题,答案也很简短:它是设计的(至少目前为止)。我个人的经验是,即使在实施工作方面如你所说的那样微不足道,也难以实现。这是R附加软件包的一个很好的理由。