Formula Interfaces
Model Matrix
Formula to Columns
model.matrix expands a formula into the numeric columns that modeling functions use internally.
Program
Play the script to shift a numeric predictor and inspect the final design-row values.
model_matrix.R
samples <- data.frame(group = factor(c("A", "B", "A")), dose = c(1, 2, 3))
dose_shift <-
samples$dose <- samples$dose + dose_shift
design <- model.matrix(~ group + dose, data = samples)
last <- paste(colnames(design), design[3, ], sep = "=", collapse = "; ")
cat(last, "\n", sep = "")
samples <- data.frame(group = factor(c("A", "B", "A")), dose = c(1, 2, 3))
dose_shift <-
samples$dose <- samples$dose + dose_shift
design <- model.matrix(~ group + dose, data = samples)
last <- paste(colnames(design), design[3, ], sep = "=", collapse = "; ")
cat(last, "\n", sep = "")
samples <- data.frame(group = factor(c("A", "B", "A")), dose = c(1, 2, 3))
dose_shift <-
samples$dose <- samples$dose + dose_shift
design <- model.matrix(~ group + dose, data = samples)
last <- paste(colnames(design), design[3, ], sep = "=", collapse = "; ")
cat(last, "\n", sep = "")
model.matrix
`model.matrix(~ group + dose, data)` creates columns from a formula.
intercept
R includes an intercept column unless the formula removes it.
factor expansion
A factor such as `group` becomes indicator columns like `groupB`.