delete.response
returns a terms
object for the same
model but with no response variable.
drop.terms
removes variables from the right-hand side of the
model. There is also a "[.terms"
method to perform the same
function (with keep.response = TRUE
).
reformulate
creates a formula from a character vector. If
length(termlabels) > 1
, its elements are concatenated with +
.
Non-syntactic names (e.g. containing spaces or special characters; see
make.names
) must be protected with backticks (see examples).
A non-parse
able response
still works for now,
back compatibly, with a deprecation warning.
delete.response(termobj)reformulate(termlabels, response = NULL, intercept = TRUE, env = parent.frame())
drop.terms(termobj, dropx = NULL, keep.response = FALSE)
A terms
object
character vector giving the right-hand side of a model formula. Cannot be zero-length.
character string, symbol or call giving the left-hand
side of a model formula, or NULL
.
logical: should the formula have an intercept?
the environment
of the formula
returned.
vector of positions of variables to drop from the right-hand side of the model.
Keep the response in the resulting object?
delete.response
and drop.terms
return a terms
object.
reformulate
returns a formula
.
# NOT RUN { ff <- y ~ z + x + w tt <- terms(ff) tt delete.response(tt) drop.terms(tt, 2:3, keep.response = TRUE) tt[-1] tt[2:3] reformulate(attr(tt, "term.labels")) ## keep LHS : reformulate("x*w", ff[[2]]) fS <- surv(ft, case) ~ a + b reformulate(c("a", "b*f"), fS[[2]]) ## using non-syntactic names: reformulate(c("`P/E`", "`% Growth`"), response = as.name("+-")) x <- c("a name", "another name") try( reformulate(x) ) # -> Error ..... unexpected symbol ## rather backquote the strings in x : reformulate(sprintf("`%s`", x)) stopifnot(identical( ~ var, reformulate("var")), identical(~ a + b + c, reformulate(letters[1:3])), identical( y ~ a + b, reformulate(letters[1:2], "y")) ) # }
Run the code above in your browser using DataCamp Workspace