Knitr挂在系统()电话上

时间:2012-11-08 18:11:23

标签: r latex system knitr

如何在一个块中运行系统调用后让knitr取消挂起?例如:

\documentclass{article}

\begin{document}
Test 

<<>>=
system('"C:\\Program Files\\SASHome\\SASFoundation\\9.3\\sas.exe" "test.sas"')
@

\end{document}

此代码永远挂起。顺便说一下,上面的R代码运行正常。感谢。

1 个答案:

答案 0 :(得分:3)

默认情况下,代码块的工作目录是源文档的目录(在本例中为Rnw doc),因此test.sas必须与Rnw文件位于同一目录下。

或者您可以使用opts_knit$set(root.dir = '/path/to/desired/dir/')指定代码块的工作目录。

knitr中的{c}}中的SAS支持已添加到development version,您可以这样做:

<<engine='sas', engine.path="C:\\Program Files\\SASHome\\SASFoundation\\9.3\\sas.exe">>=
/* write the content of your test.sas here */
@