2012-02-09 118 views
1

我想在一个变量中捕获install.packages命令的完整输出。但是,安装期间打印的消息是使用intern = FALSE调用system()的结果。因此,他们不是真正的信息/警告/打印。有什么方法可以将这些信息捕获到变量中吗?例如。install.packages的捕获输出

> sink(tempfile()) 
> bla <- suppressMessages(suppressWarnings(capture.output(system('whoami')))); 
jeroen 

或者:

> sink(tempfile()) 
> bla <- suppressMessages(suppressWarnings(capture.output(install.packages("XML")))); 

还是打印一切画面...

回答

3

可以启动一个独立的R过程:

system("Rscript -e 'install.packages(\"XML\")'", intern=TRUE) 
+1

但是要小心,因为这是不能保证运行与你当前运行的相同的R,并且libpaths等可能/将会不同 – hadley 2012-02-09 18:46:29

+0

不是最优的,但它会做fo我的目的。我想没有其他办法。 – Jeroen 2012-02-10 04:25:50