ModelEnvFormula.RdA flexible implementation of the classical formula based interface.
ModelEnvFormula(formula, data = list(), subset = NULL,
na.action = NULL, frame = NULL,
enclos = sys.frame(sys.nframe()), other = list(),
designMatrix = TRUE, responseMatrix = TRUE,
setHook = NULL, ...)a symbolic description of the model to be fit.
an optional data frame containing the variables in the model.
If not found in data, the variables are taken from
frame, by default the environment from which
ModelEnvFormula is called.
an optional vector specifying a subset of observations to be used in the fitting process.
a function which indicates what should happen when the data
contain NA's.
an optional environment formula is evaluated in.
specifies the enclosure passed to eval for
evaluating the model frame. The model frame is evaluated in
envir = frame with enclos = enclos,
see eval.
an optional named list of additional formulae.
a logical indicating whether the design matrix
defined by the right hand side of formula
should be computed.
a logical indicating whether the design matrix
defined by the left hand side of formula
should be computed.
a list of functions to MEapply every
time set is called on the object.
additional arguments for be passed to function, for example
contrast.arg to model.matrix.
This function is an attempt to provide a flexible infrastucture for the
implementation of classical formula based interfaces. The arguments
formula, data, subset and na.action are well
known and are defined in the same way as in lm, for example.
ModelEnvFormula returns an object of class
ModelEnvFormula-class - a high level object for storing
data improving upon the capabilities of data.frames.
An object of class ModelEnvFormula-class.
### the `usual' interface
data(iris)
mf <- ModelEnvFormula(Species ~ ., data = iris)
mf
#>
#> A ModelEnvFormula with
#>
#> response variable(s): Species
#> input variable(s): Sepal.Length Sepal.Width Petal.Length Petal.Width
#> number of observations: 150
#>
### extract data from the ModelEnv object
summary(mf@get("response"))
#> Species
#> setosa :50
#> versicolor:50
#> virginica :50
summary(mf@get("input"))
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
#> 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
#> Median :5.800 Median :3.000 Median :4.350 Median :1.300
#> Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
#> 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
#> Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
dim(mf@get("designMatrix"))
#> [1] 150 5
### contrasts
mf <- ModelEnvFormula(Petal.Width ~ Species, data = iris,
contrasts.arg = list(Species = contr.treatment))
#> Warning: variable 'Species' is absent, its contrast will be ignored
attr(mf@get("designMatrix"), "contrasts")
#> $Species
#> versicolor virginica
#> setosa 0 0
#> versicolor 1 0
#> virginica 0 1
#>
mf <- ModelEnvFormula(Petal.Width ~ Species, data = iris,
contrasts.arg = list(Species = contr.sum))
#> Warning: variable 'Species' is absent, its contrast will be ignored
attr(mf@get("designMatrix"), "contrasts")
#> $Species
#> [,1] [,2]
#> setosa 1 0
#> versicolor 0 1
#> virginica -1 -1
#>
### additional formulae
mf <- ModelEnvFormula(Petal.Width ~ Species, data = iris,
other = list(pl = ~ Petal.Length))
ls(mf@env)
#> [1] "designMatrix" "input" "pl" "response"
#> [5] "responseMatrix"
identical(mf@get("pl")[[1]], iris[["Petal.Length"]])
#> [1] TRUE