Thanks to everyone. I read ? sprint and the following is best I came up with. If there are ways to collapse the lines I'd be glad to know. Otherwise, I will live with this. Thanks again.

cat(sprintf("\ntol     = %e",mycontrol$tol),
    sprintf("\nreltol  = %e",mycontrol$reltol),
    sprintf("\nsteptol = %e",mycontrol$steptol),
    sprintf("\ngradtol = %e",mycontrol$gradtol))

tol     = 0.000000e+00
reltol  = 0.000000e+00
steptol = 1.000000e-08
gradtol = 1.000000e-10

On 10/24/2022 10:02 PM, Rui Barradas wrote:
Hello,

There's also ?message.


msg <- sprintf("(tol,reltol,steptol,gradtol): %E %E %E %E",

mycontrol$tol,mycontrol$reltol,mycontrol$steptol,mycontrol$gradtol)
message(msg)


Hope this helps,

Rui Barradas

Às 14:25 de 24/10/2022, Steven T. Yen escreveu:
Thank, Boris and Ivan.

The simple command suggested by Ivan ( print(t(mycontrol)) ) worked. I went along with Boris' suggestion and do/get the following:

cat(sprintf("(tol,reltol,steptol,gradtol): %E %E %E %E",mycontrol$tol,
mycontrol$reltol,mycontrol$steptol,mycontrol$gradtol))

(tol,reltol,steptol,gradtol): 0.000000E+00 0.000000E+00 1.000000E-08 1.000000E-12

This works great. Thanks.

Steven

On 10/24/2022 9:05 PM, Boris Steipe wrote:

???  t() is the transpose function. It just happens to return your list unchanged. The return value is then printed to console if it is not assigned, or returned invisibly. Transposing your list is probably not what you wanted to do.

Returned values do not get printed from within a loop or from a source()'d script. That's why it "works" interactively, but not from a script file.

If you want to print the contents of your list, just use:
   print(mycontrol)

Or use some incantation with sprintf() if you want more control about the format of what gets printed. Eg:

  cat(sprintf("Tolerance: %f (%f %%)", mycontrol$tol, mycontrol$reltol))

etc.


B.



On 2022-10-24, at 08:47, Ivan Krylov <krylov.r...@gmail.com> wrote:

В Mon, 24 Oct 2022 20:39:33 +0800
"Steven T. Yen" <st...@ntu.edu.tw> пишет:

Printing this in a main program causes no problem (as shown above).
But, using the command t(mycontrol) the line gets ignored.
t() doesn't print, it returns a value. In R, there's auto-printing in
the toplevel context (see ?withAutoprint), but not when you move away
from the interactive prompt. I think that it should be possible to use
an explicit print(t(mycontrol)) to get the behaviour you desire.

--
Best regards,
Ivan

______________________________________________
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.

______________________________________________
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.

______________________________________________
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