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 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-parseable 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 terms object termlabels character vector giving the right-hand side of a model formula. Cannot be zero-length. response character string, symbol or call giving the left-hand side of a model formula, or NULL. intercept logical: should the formula have an intercept? env the environment of the formula returned. dropx vector of positions of variables to drop from the right-hand side of the model. keep.response Keep the response in the resulting object?

### Value

delete.response and drop.terms return a terms object.

reformulate returns a formula.

terms

### 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")
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"))
)


[Package stats version 4.2.0 Index]