??? 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.r00t at gmail.com>
wrote:
>
> ? Mon, 24 Oct 2022 20:39:33 +0800
> "Steven T. Yen" <styen at 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 at 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.