[R] Retrievable results in a procedure

Jeff Newmiller jdnewmil @ending from dcn@d@vi@@c@@u@
Tue Dec 25 23:37:21 CET 2018


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 <styen using 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.



More information about the R-help mailing list