plm (version 2.2-5)

model.frame.pdata.frame: model.frame and model.matrix for panel data

Description

Methods to create model frame and model matrix for panel data.

Usage

# S3 method for pdata.frame
model.frame(
  formula,
  data = NULL,
  ...,
  lhs = NULL,
  rhs = NULL,
  dot = "previous"
)

# S3 method for pdata.frame formula(x, ...)

# S3 method for plm model.matrix(object, ...)

# S3 method for pdata.frame model.matrix( object, model = c("pooling", "within", "Between", "Sum", "between", "mean", "random", "fd"), effect = c("individual", "time", "twoways", "nested"), rhs = 1, theta = NULL, cstcovar.rm = NULL, ... )

Arguments

data

a formula, see Details,

further arguments.

lhs

inherited from package Formula::Formula() (see there),

rhs

inherited from package Formula::Formula() (see there),

dot

inherited from package Formula::Formula() (see there),

x

a model.frame

object, formula

an object of class "pdata.frame" or an estimated model object of class "plm",

model

one of "pooling", "within", "Sum", "Between", "between", "random", "fd" and "ht",

effect

the effects introduced in the model, one of "individual", "time", "twoways" or "nested",

theta

the parameter for the transformation if model = "random",

cstcovar.rm

remove the constant columns, one of "none", "intercept", "covariates", "all"),

Value

The model.frame methods return a pdata.frame. The model.matrix methods return a matrix.

Details

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.

See Also

pmodel.response() for (transformed) response variable. Formula::Formula() from package Formula, especially for the lhs and rhs arguments.

Examples

Run this code
# NOT RUN {
# First, make a pdata.frame
data("Grunfeld", package = "plm")
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)
form <- inv ~ value
mf <- model.frame(pGrunfeld, form)

# then construct the (transformed) model matrix (design matrix)
# from formula and model frame
#modmat <- model.matrix(pform, data = mf, model = "within")
modmat <- model.matrix(mf, model = "within")

## retrieve model frame and model matrix from an estimated plm object
#fe_model <- plm(pform, data = pGrunfeld, model = "within")
fe_model <- plm(form, 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

# }

Run the code above in your browser using DataLab