使Rcout输出立即显示在R控制台上

时间:2012-11-10 23:58:09

标签: r flush rcpp

我使用Rcpp(特别是RcppArmadillo)对MCMC采样器进行了编码。我希望我的采样器将定期状态消息打印到R控制台,但是当采样器终止时,消息会立即显示。输出语句是:

Rcout << "Progress => " 
      << double(iterations) / double(maxit) * 100 
      << "%" 
      << std::endl;

可以扩充此代码,使其输出立即显示在R控制台上吗?

R版本:2.14.1

平台:达尔文9.8.0

Rcpp版本:0.9.10

3 个答案:

答案 0 :(得分:2)

此行为已根据answers to this question的建议在Rcpp 0.10.0(即将发布)中实施。

在此期间,您可以手动拨打R_FlushConsole

答案 1 :(得分:0)

flush()和flush.console()仍然被破坏。 R 3.0.2 / OSX

答案 2 :(得分:0)

你需要一个帽子戏法:

R_FlushConsole();
R_ProcessEvents();
R_CheckUserInterrupt();

复制自:parallel-computing-in-r-with-c-within-r-functions