Re: [Rd] Feature request: txtProgressBar with ability to write to arbitrary stream

From: Matt Shotwell <Matt.Shotwell_at_vanderbilt.edu>
Date: Tue, 15 Mar 2011 07:46:18 -0500

Here's a temporary fix; reassign 'cat' in the environment of 'txtProgressBar':

tpbEnv <- new.env()
assign("cat", function(...) cat(file=stderr(),...), tpbEnv) environment(txtProgressBar) <- tpbEnv

Best,
Matt

On 03/15/2011 05:37 AM, Andreas Borg wrote:
> Hi all,
>
> I use txtProgressBar to monitor progress of large computations. What I
> miss is the ability to redirect the progress bar to a stream other than
> stdout, specifically to the message stream. This would be useful for
> running Sweave scripts: When redirected to stderr, the bar could be
> visible even though console output is diverted to the output file (and
> there would be no cluttering of the generated latex).
>
> I'd suggest the following changes to txtProgressBar:
> - a new argument 'file' (compare to 'cat') which defaults to stderr()
> (there might be reasons to use stdout(), but I believe a progress bar is
> mostly intended as a diagnostic tool and not for console output, which
> is printed or saved in some cases).
> - the calls to 'cat' that update the progress bar get 'file = file' as
> additional argument so that output is redirected as desired.
>
> In case anyone from the core team is willing to incorparate this idea, I
> attached the patch file for the necessary changes below.
>
> Best regards,
>
> Andreas
>
> 3c3
> < width = NA, title, label, style = 1)
> ---
> > width = NA, title, label, style = 1, file=stderr())
> 23c23
> < cat(paste(rep.int(char, nb-.nb), collapse=""))
> ---
> > cat(paste(rep.int(char, nb-.nb), collapse=""), file = file)
> 27c27
> < "\r", paste(rep.int(char, nb), collapse=""), sep = "")
> ---
> > "\r", paste(rep.int(char, nb), collapse=""), sep = "", file = file)
> 38c38
> < cat("\r", paste(rep.int(char, nb), collapse=""), sep = "")
> ---
> > cat("\r", paste(rep.int(char, nb), collapse=""), sep = "", file = file)
> 42c42
> < "\r", paste(rep.int(char, nb), collapse=""), sep = "")
> ---
> > "\r", paste(rep.int(char, nb), collapse=""), sep = "", file = file)
> 54c54
> < cat(paste(c("\r |", rep.int(" ", nw*width+6)), collapse=""))
> ---
> > cat(paste(c("\r |", rep.int(" ", nw*width+6)), collapse=""), file =
> file)
> 59c59
> < ), collapse=""))
> ---
> > ), collapse=""), file = file)
> 68c68
> < cat("\n")
> ---
> > cat("\n", file = file)
>

-- 
Matthew S Shotwell   Assistant Professor           School of Medicine
                      Department of Biostatistics   Vanderbilt University

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Tue 15 Mar 2011 - 13:37:45 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 15 Mar 2011 - 19:30:31 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive