pvar: Check for Cross-Sectional and Time Variation

View source: R/tool_misc.R

pvarR Documentation

Check for Cross-Sectional and Time Variation

Description

This function checks for each variable of a panel if it varies cross-sectionally and over time.

Usage

pvar(x, ...)

## S3 method for class 'matrix'
pvar(x, index = NULL, ...)

## S3 method for class 'data.frame'
pvar(x, index = NULL, ...)

## S3 method for class 'pdata.frame'
pvar(x, ...)

## S3 method for class 'pseries'
pvar(x, ...)

## S3 method for class 'pvar'
print(x, ...)

Arguments

x

a ⁠(p)data.frame⁠ or a matrix,

...

further arguments.

index

see pdata.frame(),

Details

For (p)data.frame and matrix interface: All-NA columns are removed prior to calculation of variation due to coercing to pdata.frame first.

Value

An object of class pvar containing the following elements:

id.variation

a logical vector with TRUE values if the variable has individual variation, FALSE if not,

time.variation

a logical vector with TRUE values if the variable has time variation, FALSE if not,

id.variation_anyNA

a logical vector with TRUE values if the variable has at least one individual-time combination with all NA values in the individual dimension for at least one time period, FALSE if not,

time.variation_anyNA

a logical vector with TRUE values if the variable has at least one individual-time combination with all NA values in the time dimension for at least one individual, FALSE if not.

Note

pvar can be time consuming for “big” panels. As a fast alternative collapse::varying() from package collapse could be used.

Author(s)

Yves Croissant

See Also

pdim() to check the dimensions of a 'pdata.frame' (and other objects),

Examples



# Gasoline contains two variables which are individual and time
# indexes and are the first two variables
data("Gasoline", package = "plm")
pvar(Gasoline)

# Hedonic is an unbalanced panel, townid is the individual index;
# the drop.index argument is passed to pdata.frame
data("Hedonic", package = "plm")
pvar(Hedonic, "townid", drop.index = TRUE)

# same using pdata.frame
Hed <- pdata.frame(Hedonic, "townid", drop.index = TRUE)
pvar(Hed)

# Gasoline with pvar's matrix interface
Gasoline_mat <- as.matrix(Gasoline)
pvar(Gasoline_mat)
pvar(Gasoline_mat, index=c("country", "year"))


plm documentation built on April 9, 2023, 5:06 p.m.