[R] options()$width ignored by print.formula

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Nov 6 18:37:28 CET 2012


On 06/11/2012 17:01, Sarah Goslee wrote:
> Hi all,
>
> I'm working with summary.gam() and noticed that the options()$width
> argument is ignored by some components of that function, in particular
> the formula, which is printed at an arbitrary length regardless of the
> desired width.
>
> I've tracked the problem back to print.formula(), so at a lower level
> than summary.gam(). Is there a way around this that I'm missing?

Use deparse(): print() on a language type uses (at C level) deparse with 
the default width.cutoff of 60.  E.g. (subject to vagaries of mailers)

 > form <- 
reallylongnamey~reallylongnamex0+reallylongnamex1+reallylongnamex2+reallylongnamex3
 > form
reallylongnamey ~ reallylongnamex0 + reallylongnamex1 + reallylongnamex2 +
     reallylongnamex3
 > deparse(form, 150)
[1] "reallylongnamey ~ reallylongnamex0 + reallylongnamex1 + 
reallylongnamex2 + reallylongnamex3"

I am not sure this is something we would want to make depend on 
getOption("width"), but it might merit a separate option.

>
> library(mgcv)
> # start with example from ?gam
> set.seed(2) ## simulate some data...
> dat <- gamSim(1,n=400,dist="normal",scale=2)
>
>
> colnames(dat)[1:5] <- c("reallylongnamey", "reallylongnamex0",
> "reallylongnamex1", "reallylongnamex2", "reallylongnamex3")
> b <- gam(reallylongnamey~s(reallylongnamex0)+s(reallylongnamex1)+s(reallylongnamex2)+s(reallylongnamex3),data=dat)
>
> options(width=20)
> b$formula # not wrapped to 20 characters
>
> options(width=150)
> b$formula # the formula is wrapped even though it fits in the specified width
>
> # also true for lm()
> b <- lm(reallylongnamey~reallylongnamex0+reallylongnamex1+reallylongnamex2+reallylongnamex3,data=dat)
>
> options(width=20)
> b$call
>
> options(width=150)
> b$call
>
>
> Thanks,
> Sarah
>
> --
> Sarah Goslee
> http://www.functionaldiversity.org
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
>


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list