Creating a formula from a string

Problem

You want to create a formula from a string.

Solution

It can be useful to create a formula from a string. This often occurs in functions where the formula arguments are passed in as strings.

In the most basic case, use as.formula():

# This returns a string:
"y ~ x1 + x2"
# "y ~ x1 + x2"
 
# This returns a formula:
as.formula("y ~ x1 + x2")
# y ~ x1 + x2

Here is an example of how it might be used:

# These are the variable names:
measurevar <- "y"
groupvars  <- c("x1","x2","x3")
 
# This creates the appropriate string:
paste(measurevar, paste(groupvars, collapse=" + "), sep=" ~ ")
# "y ~ x1 + x2 + x3"
 
# This returns the formula:
as.formula(paste(measurevar, paste(groupvars, collapse=" + "), sep=" ~ "))
# y ~ x1 + x2 + x3