wrapFormula: Enhance Formula by Wrapping each Term, e.g., by "s(.)"

View source: R/misc-goodies.R

wrapFormulaR Documentation

Enhance Formula by Wrapping each Term, e.g., by "s(.)"

Description

The main motivation for this function has been the easy construction of a “full GAM formula” from something as simple as Y ~ ..
The potential use is slightly more general.

Usage

wrapFormula(f, data, wrapString = "s(*)")

Arguments

f

the initial formula; typically something like Y ~ ..

data

data.frame to which the formula applies; see, formula or also gam or lm.

wrapString

character string, containing "*", specifying the wrapping expression to use.

Value

a formula very similar to f; just replacing each additive term by its wrapped version.

Note

There are limits for this to work correctly; notably the right hand side of the formula f should not be nested or otherwise complicated, rather typically just . as in the examples.

Author(s)

Martin Maechler, May 2007.

See Also

formula; gam from package mgcv (or also from package gam).

Examples

myF <- wrapFormula(Fertility ~ . , data = swiss)
myF # Fertility ~ s(Agriculture) + s(....) + ...

if(require("mgcv")) {
   m1 <- gam(myF, data = swiss)
   print( summary(m1) )
   plot(m1, pages = 1) ; title(format(m1$call), line= 2.5)
}

## other wrappers:
wrapFormula(Fertility ~ . , data = swiss, wrap = "lo(*)")
wrapFormula(Fertility ~ . , data = swiss, wrap = "poly(*, 4)")

mmaechler/sfsmisc documentation built on Feb. 28, 2024, 4:18 a.m.