Thanks, Prof. Ripley. Using deparse(b$formula, width.cutoff = options()$width) works as I'd expected (full example below). So I can use that to write a custom summary.gam(), though that still seems like a lot of work to get summary(b) to follow the usual R output conventions.
Sarah 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) deparse(b$formula, width.cutoff = options()$width) # not wrapped to 20 characters options(width=150) deparse(b$formula, width.cutoff = options()$width) # the formula is wrapped even though it fits in the specified width On Tue, Nov 6, 2012 at 12:37 PM, Prof Brian Ripley <rip...@stats.ox.ac.uk> wrote: > 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@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.