amModel {AMModels} | R Documentation |
Create An amModel
Object That Pairs Models With Their Metadata
Description
Creates an object of class amModel
, which is a fitted model object (or similar) with mandatory metadata.
An S4 class to store models with descriptive metadata.
Usage
amModel(model, ...)
Arguments
model |
A model fit object or similar. |
... |
Named metadata elements, either supplied individually and coerced to list or supplied as a named list. |
Value
An object of class amModel
suitable for inclusion in an amModelLib
.
Slots
model
A model fit object, e.g. from
lm
or any single object containing the means to predict values from data.metadata
A named list of length 1 character vectors that form name:value pairs, e.g. the analyst, the project, the data used, etc. The metadata name
data
can be used to link the model with the name of a data object, and when manipulated in theamModelLib
an effort will be made to keep the model and data together. When embedded in anamModelLib
, model metadata may be retrieved or set withmodelMeta
.
See Also
Other amModelLib: AMModels
,
amData
, amModelLib
,
getters
, grepAMModelLib
,
insertAMModelLib
, lsModels
,
rmModel
Examples
# run models from from lm helpfile
## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
## Page 9: Plant Weight Data.
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
lm.D90 <- lm(weight ~ group - 1) # omitting intercept
# note the original class of models is 'lm'
class(lm.D9)
# wrap lm.D9 in an amModel object
mod1 <- amModel(model = lm.D9, comment='example from lm')
# summarize mod1; summary for the original object class, plus the metadata
summary(mod1)
# convert lm.D90 to an amModel object
mod2 <- amModel(model = lm.D90, comment='second example from lm')
# use the function, amModelLib, to create a new amModelLib that includes both models
# the models must be supplied as a named list
mymodels <- amModelLib(
models = list(
mod1 = mod1,
mod2 = mod2
),
description = "This amModelLib stores linear models from the lm helpfile."
)
# list the models of the amModelLib
lsModels(mymodels)
# the modelMeta function can be used to retrieve model metadata
modelMeta(mymodels, 'mod1')
# the modelMeta function can also be used to set model metadata
modelMeta(mymodels, 'mod1') <- list(
url = "https://stat.ethz.ch/R-manual/R-devel/library/stats/html/lm.html"
)
modelMeta(amml = mymodels, 'mod1')
# use getAMModel to extract the model by name
getAMModel(amml = mymodels, 'mod2', as.list = FALSE)
# notice the retrieved model is returned in its original class
class(getAMModel(amml = mymodels, 'mod2', as.list = FALSE))
# create a new empty amModelLib called mymodels2
mymodels2 <- amModelLib(description = "A second amModelLib called mymodels2.")
# use insertAMModelLib to insert amModel objects to an existing amModelLib
mymodels2 <- insertAMModelLib(models = list(mod1 = mod1, mod2 = mod2))
# use rmModel to remove an amModel object from an amModelLib
rmModel('mod2', amml = mymodels2)