The column labels are constructed by the following definition.
Numeric variables inherit the corresponding term label.
Numeric matrices produce column labels that concatenate the term
label with the column labels of the matrix, if any, or with "1", "2", etc.
Main effects for factors or ordered factors use the column label
concatenated with the column labels of the contrast matrix,
again using "1", "2", etc. as default.
For both cases, the term label is used alone if there is only one
column or one contrast.
This is primarily a support routine, called by lm and by other
model-fitting functions that call or derive from lm, such as aov,
glm, and gam.
Note that the model-fitting functions loess and tree do not
use model.matrix, chiefly because they do not use contrasts to
handle factors.