These functions provide a formula based interface to the construction of matrices from data and for fitting. You can use them both for numerical vectors and for functions of variables in data frames. These functions are intended to support teaching basic linear algebra with a particular connection to statistics.
mat(formula, data = parent.frame(), A = formula)
singvals(formula, data = parent.frame(), A = formula)a formula. In mat and singvals,
only the right-hand side is used.
a data frame from which to pull out numerical values for the variables in the formula
an alias for formula for backward compatibility.
mat returns a model matrix
To demonstrate singularity, use singvals.
mat returns a matrix
singvals gives singular values for each column in the model matrix
linearModel(), which returns a function.
a <- c(1,0,0); b <- c(1,2,3); c <- c(4,5,6); x <- rnorm(3)
# Formula interface
mat(~a+b)
#> a b
#> [1,] 1 1
#> [2,] 0 2
#> [3,] 0 3
mat(~a+b+1)
#> (Intercept) a b
#> [1,] 1 1 1
#> [2,] 1 0 2
#> [3,] 1 0 3
if (require(mosaicData)) {
mat(~length+sex, data=KidsFeet)
singvals(~length*sex*width, data=KidsFeet)
}
#> [1] 1.574862e+03 6.256393e+02 9.268586e+00 3.460037e+00 2.539537e+00
#> [6] 9.789860e-01 1.240576e-02 7.446299e-03