.checkMFClasses

0th

Percentile

Functions to Check the Type of Variables passed to Model Frames

.checkMFClasses checks if the variables used in a predict method agree in type with those used for fitting.

.MFclass categorizes variables for this purpose.

.getXlevels() extracts factor levels from factor or character variables.

Keywords
utilities
Usage
.checkMFClasses(cl, m, ordNotOK = FALSE)
.MFclass(x)
.getXlevels(Terms, m)
Arguments
cl

a character vector of class descriptions to match.

m

a model frame (model.frame() result).

x

any R object.

ordNotOK

logical: are ordered factors different?

Terms

a terms object (terms.object).

Details

For applications involving model.matrix() such as linear models we do not need to differentiate between ordered factors and factors as although these affect the coding, the coding used in the fit is already recorded and imposed during prediction. However, other applications may treat ordered factors differently: rpart does, for example.

Value

.checkMFClasses() checks and either signals an error calling stop() or returns NULL invisibly.

.MFclass() returns a character string, one of "logical", "ordered", "factor", "numeric", "nmatrix.*" (a numeric matrix with a number of columns appended) or "other".

.getXlevels returns a named list of character vectors, possibly empty, or NULL.

Aliases
  • .checkMFClasses
  • .MFclass
  • .getXlevels
Examples
library(stats) # NOT RUN { sapply(warpbreaks, .MFclass) # "numeric" plus 2 x "factor" sapply(iris, .MFclass) # 4 x "numeric" plus "factor" mf <- model.frame(Sepal.Width ~ Species, iris) mc <- model.frame(Sepal.Width ~ Sepal.Length, iris) .checkMFClasses("numeric", mc) # nothing else .checkMFClasses(c("numeric", "factor"), mf) ## simple .getXlevels() cases : (xl <- .getXlevels(terms(mf), mf)) # a list with one entry " $ Species" with 3 levels: stopifnot(exprs = { identical(xl$Species, levels(iris$Species)) identical(.getXlevels(terms(mc), mc), xl[0]) # a empty named list, as no factors is.null(.getXlevels(terms(x~x), list(x=1))) }) # }
Documentation reproduced from package stats, version 3.6.0, License: Part of R 3.6.0

Community examples

Looks like there are no examples yet.