model.frame.pFormula {plm} | R Documentation |
Methods to create model frame and model matrix for panel data.
## S3 method for class 'pFormula' model.frame(formula, data, ..., lhs = NULL, rhs = NULL) ## S3 method for class 'pFormula' model.matrix(object, data, model = c("pooling","within","Between", "between","mean","random","fd"), effect = c("individual","time","twoways"), rhs = 1, theta = NULL, ...) ## S3 method for class 'plm' model.matrix(object, ...)
object, formula |
an object of class |
data |
a |
effect |
the effects introduced in the model, one of
|
model |
one of |
theta |
the parameter for the transformation if |
lhs |
inherited from package |
rhs |
inherited from package |
... |
further arguments. |
The lhs
and rhs
arguments are inherited from Formula
, see there for
more details.
The model.frame
methods return a pdata.frame
object suitable as an input
to plm's model.matrix
.
The model.matrix
methods builds a model matrix
with transformations performed as specified by the model
and effect
arguments (and theta
if model = "random"
is requested), in this case the
supplied data
argument should be a model frame created by plm's model.frame
method. If not, it is tried to construct the model frame from the data.
Constructing the model frame first ensures proper NA handling, see Examples.
The model.frame
methods return a pdata.frame
.
The model.matrix
methods return a matrix
.
Yves Croissant
pmodel.response
for (transformed) response variable.
pFormula
, especially for coercing a formula
to a pFormula
.
Formula
from package Formula
, especially for
the lhs
and rhs
arguments.
# First, make a pdata.frame data(Grunfeld) pGrunfeld <- pdata.frame(Grunfeld) # then make a model frame from a pFormula and a pdata.frame pform <- pFormula(inv ~ value + capital) mf <- model.frame(pform, data = pGrunfeld) # then construct the (transformed) model matrix (design matrix) # from formula and model frame modmat <- model.matrix(pform, data = mf, model = "within") ## retrieve model frame and model matrix from an estimated plm object fe_model <- plm(pform, data = pGrunfeld, model = "within") model.frame(fe_model) model.matrix(fe_model) # same as constructed before all.equal(mf, model.frame(fe_model), check.attributes = FALSE) # TRUE all.equal(modmat, model.matrix(fe_model), check.attributes = FALSE) # TRUE