model_offset()
extracts a numeric offset from a model frame. It is
inspired by stats::model.offset()
, but has nicer error messages and
is slightly stricter.
model_offset(terms, data)
A "terms"
object corresponding to data
, returned from a
call to model_frame()
.
A data frame returned from a call to model_frame()
.
A numeric vector representing the offset.
If a column that has been tagged as an offset is not numeric, a nice error message is thrown telling you exactly which column was problematic.
stats::model.offset()
also allows for a column named "(offset)"
to be
considered an offset along with any others that have been tagged by
stats::offset()
. However, stats::model.matrix()
does not recognize
these columns as offsets (so it doesn't remove them as it should). Because
of this inconsistency, columns named "(offset)"
are not treated specially
by model_offset()
.
# NOT RUN {
x <- model.frame(Species ~ offset(Sepal.Width), iris)
model_offset(terms(x), x)
xx <- model.frame(Species ~ offset(Sepal.Width) + offset(Sepal.Length), iris)
model_offset(terms(xx), xx)
# Problematic columns are caught with intuitive errors
tryCatch(
expr = {
x <- model.frame(~ offset(Species), iris)
model_offset(terms(x), x)
},
error = function(e) {
print(e$message)
}
)
# }
Run the code above in your browser using DataLab