fixModelMatrix: Fix the "factor" matrix of a terms object.

View source: R/ffmanova_div.R

fixModelMatrixR Documentation

Fix the "factor" matrix of a terms object.


The function takes the factor matrix of the terms object corresponding to a model formula and changes it so that model hierarchy is preserved also for powers of terms (e.g., I(a^2)).





The factor matrix (i.e. the "factor" attribute) of a terms object.


The ordinary model handling functions in do not treat powers of terms (a^n) as being higher order terms (like interaction terms). fixModelMatrix takes the "factor" attribute of a terms object (usually created from a model formula) and changes it such that power terms can be treated hierarchically just like interaction terms.

The factor matrix has one row for each variable and one coloumn for each term. Originally, an entry is 0 if the term does not contain the variable. If it contains the variable, the entry is 1 if the variable should be coded with contrasts, and 2 if it should be coded with dummy variables. See terms.object for details.

The changes performed by fixModelMatrix are:

  • Any 2's are changed to 1.

  • In any coloumn corresponding to a term that contains I(a^n), where a is the name of a variable and n is a positive integer, the element in the row corresponding to a is set to n. For instance, the entry of row D and coloumn C:I(D^2) is set to 2.

  • Rows corresponding to I(a^n) are deleted.

Note that this changes the semantics of the factor matrix: 2 no longer means ‘code via dummy variables’.


A factor matrix.


Øyvind Langsrud and Bjørn-Helge Mevik

See Also

terms, terms.object


mt <- terms(y ~ a + b + a:b + a:c + I(a^2) + I(a^3) + I(a^2):b)
print(mOld <- attr(mt, "factor"))

ffmanova documentation built on Oct. 18, 2023, 5:08 p.m.