2012-11-10 41 views
5

Tôi đã mã hóa một trình lấy mẫu MCMC bằng cách sử dụng Rcpp (cụ thể là RcppArmadillo). Tôi muốn mẫu thử của tôi in các thông báo trạng thái định kỳ tới bàn điều khiển R, nhưng các thông báo xuất hiện cùng một lúc khi trình lấy mẫu kết thúc. Tuyên bố đầu ra là:Làm cho đầu ra Rcout xuất hiện trên bảng điều khiển R ngay lập tức

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

Mã này có thể được tăng cường để đầu ra của nó xuất hiện trên bảng điều khiển R ngay lập tức không?

R phiên bản: 2.14.1

nền tảng: Darwin 9.8.0

Rcpp phiên bản: 0.9.10

+1

Bạn có thể cần phải tuôn ra bộ đệm điều khiển đầu ra. Trong c + + đó là std :: flush, có lẽ có một Rcpp tương đương? – Thomas

+1

Có lẽ việc gọi 'R_FlushConsole' sẽ làm điều đó –

Trả lời

2

Hành vi này đã được thực hiện trong Rcpp 0.10.0 (sẽ được phát hành sớm) theo lời khuyên từ answers to this question.

Trong khi đó, bạn có thể tự gọi R_FlushConsole

+0

+1 - bổ sung rất đẹp –

+0

Khi tôi ở đó. Tôi đã triển khai 'Rcerr' –

+0

Cả std :: flush lẫn R_FlushConsole đều không khắc phục được sự cố. Xuất ra vẫn bị trì hoãn cho đến khi hàm kết thúc. – user1815351

0

flush() và flush.console() vẫn đang bị phá vỡ. R 3.0.2/OSX