我开始学习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=...
)
答案 0 :(得分:3)
简短的回答是使用knitr
代替,这允许缩进代码块。
关于Sweave的问题,答案也很简短:它是设计的(至少目前为止)。我个人的经验是,即使在实施工作方面如你所说的那样微不足道,也难以实现。这是R附加软件包的一个很好的理由。