[R] Rprintf not updating
Sharpie
chuck at sharpsteen.net
Mon Apr 5 17:29:20 CEST 2010
Erik Wright wrote:
>
> Hello all,
>
> I am using Rprintf in a C for loop (from .Call) to print a progress
> indicator showing the current percent complete. The loop I am doing is an
> time intensive call to another function. I have noticed that Rprintf does
> not print to the R-window until the entire loop has been completed. When
> it reaches the end of the loop it suddenly prints 0 percent to 100 percent
> in a split second. For less intensive function calls it prints properly
> while looping. My question is this: is there any way to force Rprintf to
> print to the screen during a loop?
>
> On a related note, how can I show a percent sign in the output? For
> example, Rprintf("0%"); only prints a zero.
>
> Thanks!,
> Erik
>
Perhaps you could use a callback to R's built in progress bar functions to
perform this for you in a nicely formatted way. Something of the form:
pBar <- txtProgressBar( min = , max = , type = 3 )
cResults <- .Call( 'some_c_routine', some, args, including, pBar )
close( pBar )
Since you pass the progress bar to the C routine, you could perform a
callback to the R function setTxtProgressBar() to update it every iteration.
I posted an example of how to perform callbacks from C to R in this thread:
http://n4.nabble.com/Writing-own-simulation-function-in-C-td1580190.html#a1580423
Hope this helps!
-Charlie
-----
Charlie Sharpsteen
Undergraduate-- Environmental Resources Engineering
Humboldt State University
--
View this message in context: http://n4.nabble.com/Rprintf-not-updating-tp1751703p1751725.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list