You can use `capture.output`, but a far, far better solution is to remove the 
output statements from your computation functions entirely and let the caller 
decide whether to print the results.

You can, for example, add a `debug` parameter to the function, and if true it 
can return a list of as many intermediate results as you like that you can 
examine as you wish.

Of course, if debugging is your goal then learning to use the debug function to 
mark functions for single-stepping as needed is even better.

But no matter what, making functions that do both computation and output is 
really poor practice... do one or the other.

On December 25, 2018 5:42:13 AM PST, Steven Yen <st...@ntu.edu.tw> wrote:
>I would like to suppressed printing of retrievable results in a 
>procedure and to print only when retrieved.
>
>In line 10 below I call procedure "try" and get matrices A,B,C all 
>printed upon a call to the procedure. I get around this unwanted 
>printing by calling with v<-try(A,B) as in line 11.
>
>Any way to suppress printing of the retrievable results listed in the 
>structure command? Thank you, and Merry Christmas to all.
>
>
>A<-matrix(rpois(16,lambda=5),nrow=4,byrow=T)
>B<-diag(4)
>
>try<-function(A,B){
>  C<-A+B
>  cat("\nC:\n"); print(C)
>structure(list(A=A,B=B,C=C))
>}
>
>try(A,B)    # line 10
>v<-try(A,B) # line 11

-- 
Sent from my phone. Please excuse my brevity.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to