Learn R Programming

plm (version 2.6-4)

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, ... )

Value

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

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"),

Author

Yves Croissant

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

# First, make a pdata.frame
data("Grunfeld", package = "plm")
pGrunfeld <- pdata.frame(Grunfeld)

# then make a model frame from a formula and a pdata.frame
form <- inv ~ value
mf <- model.frame(pGrunfeld, form)

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

## retrieve model frame and model matrix from an estimated plm object
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