getters {AMModels} | R Documentation |
Extract A Single Model or Data Object, Get Or Set Info, Description, Or Metadata.
Description
The function getAMData
will extract an amData
object from an amModelLib
; the function getAMModel
will extract an amModel
object from an amModelLib
. The function ammlDesc
can be used to retrieve or set a description of an amModelLib
object. The function ammlInfo
can be used to retrieve or set information about an amModelLib
object. modelMeta
and dataMeta
retrieve and set metadata within amModelLib
objects.
Usage
getAMModel(amml, x, as.list = FALSE, ...)
getAMData(amml, x, as.list = FALSE, ...)
ammlDesc(amml)
ammlDesc(amml) <- value
ammlInfo(amml, x = NULL)
ammlInfo(amml) <- value
modelMeta(amml, x = NULL)
modelMeta(amml, x) <- value
dataMeta(amml, x = NULL)
dataMeta(amml, x) <- value
Arguments
amml |
An |
x |
A name or length 1 integer index to extract from or set within the |
as.list |
Logical; |
... |
Additional arguments (not used). |
value |
A named list of metadata to set within |
Details
The objects created by getAMData
and getAMModel
are returned as their original class unless the argument as.list
is set to TRUE
. If as.list
, a list is returned with the original object in the first element and metadata in the second.
The setters for ammlInfo
, modelMeta
, and dataMeta
replace individual elements in their respective lists with each call. To remove elements set their value to NULL
in the named replacement list.
Value
The model or data object in its original form, or if as.list
a list with
models |
The original model |
(or
data |
The original data |
) and
metadata |
metadata |
.
See Also
Other amModelLib: AMModels
,
amData
, amModelLib
,
amModel
, grepAMModelLib
,
insertAMModelLib
, lsModels
,
rmModel
Examples
# create dataset from lm helpfile
## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
## Page 9: Plant Weight Data.
# notice the models lm.D9 and lm.D90 are of class 'lm'
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
# create two amModel objects with metadata and a soft link to the data
full.model <- amModel(
model = lm.D9,
comment = 'full model',
source = 'lm helpfile (R).',
taxa = 'plants',
data = 'plant.data'
)
no.int.model <- amModel(
model = lm.D90,
comment = 'model without intercept',
source = 'lm helpfile (R).',
taxa = 'plants',
data = 'plant.data'
)
# create an amData object that includes metadata
# the plant.data is of class data.frame
plant.data <- data.frame(group = group, weight = weight)
plant.data <- amData(
data = plant.data,
comment = 'Dataset from lm helpfile.'
)
# create a second amData object that includes metadata
log.plant.data <- data.frame(group, log.weight=log(weight))
log.plant.data <- amData(
data = log.plant.data,
comment = 'data to fit log model',
source = 'lm helpfile (R).'
)
# create an amModelLib that contains the two amModel objects and two amData objects
# the models and data must be supplied as named lists
mymodels <- amModelLib(
models = list(
full.model = full.model,
no.int.model = no.int.model
),
data = list(
plant.data = plant.data,
log.plant.data = log.plant.data
)
)
# extract the dataset
getAMData(amml = mymodels, 'plant.data', as.list = FALSE)
# you can also extract by index
getAMData(amml = mymodels, 1, as.list = FALSE)
# extract the model
getAMModel(amml = mymodels, 'full.model', as.list = FALSE)
# you can also extract by index
getAMModel(amml = mymodels, 1, as.list = FALSE)
# extraction with '[' and '[[', which are identical here, focus on models
mymodels[c(1,2)]
mymodels[[1]]
# Add a description to the amModelLib
ammlDesc(mymodels) <- "This library demonstrates how to store models
and data in a format that allows for descriptive metadata and easy
retrieval for future reference."
# Extract the description
ammlDesc(mymodels)
# Add some metadata 'info' to the amModelLib
ammlInfo(mymodels) <- list(owner = 'me', organization = 'My Organization')
# Extract all info for an amModelLib
ammlInfo(mymodels)
# Extract targeted info
ammlInfo(amml = mymodels, 'owner')
# Delete metadata by setting to NULL
ammlInfo(mymodels) <- list(organization = NULL)
# Extract all model metadata
modelMeta(mymodels)
# Extract metadata from specific model
modelMeta(amml = mymodels, 'full.model')
# Add metadata to 'full.model'
modelMeta(amml = mymodels, 'full.model') <- list(
url = "https://stat.ethz.ch/R-manual/R-devel/library/stats/html/lm.html"
)
# remove metadata by setting value to NULL
modelMeta(amml = mymodels, 'full.model') <- list(url = NULL)
# Extract all data metadata
dataMeta(mymodels)
# Extract metadata from specific data
dataMeta(amml = mymodels, 'plant.data')
# Add metadata to 'plant.data'
dataMeta(mymodels, 'plant.data') <- list(
url = "https://stat.ethz.ch/R-manual/R-devel/library/stats/html/lm.html"
)
# remove metadata by setting value to NULL
dataMeta(mymodels, 'plant.data') <- list(url = NULL)