delete.response {stats} | R Documentation |
Modify Terms Objects
Description
delete.response
returns a terms
object for the same
model but with no response variable.
drop.terms
removes terms from the right-hand side of the
model, optionally keeping the response. There is also a
[.terms
method performing a complementary operation: it
extracts terms, always keeping the response.
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.
Usage
delete.response(termobj)
reformulate(termlabels, response = NULL, intercept = TRUE, env = parent.frame())
drop.terms(termobj, dropx = NULL, keep.response = FALSE)
Arguments
termobj |
a |
termlabels |
character vector giving the right-hand side of a model formula. Cannot be zero-length. |
response |
a character string, symbol or call giving the left-hand
side of a model formula, or |
intercept |
logical: should the formula have an intercept? |
env |
the |
dropx |
a numeric vector indexing |
keep.response |
Keep the response in the resulting object? |
Value
delete.response
and drop.terms
return a terms
object.
reformulate
returns a formula
.
See Also
Examples
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")
tryCatch( reformulate(x), error = function(e) "Syntax error." )
## 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"))
)