plm (version 1.6-5)

pseries: panel series

Description

A class for panel series for which several useful computations and data transformations are available.

Usage

between(x, ...) Between(x, ...) Within(x, ...) "between"(x, effect = c("individual", "time"), ...) "Between"(x, effect = c("individual", "time"), ...) "Within"(x, effect = c("individual", "time"), ...) "summary"(object, ...) "print"(x, ...) "as.matrix"(x, idbyrow = TRUE, ...)

Arguments

x, object
a pseries or a summary.pseries object,
effect
character string indicating the "individual" or "time" effect,
idbyrow
if TRUE in the as.matrix method, the lines of the matrix are the individuals,
...
further arguments, e. g. na.rm = TRUE for transformation functions like beetween, see Details and Examples.

Value

All these functions return an object of class pseries, except: between, which returns a numeric vector, as.matrix, which returns a matrix.

Details

The functions between, Between, and Within perform specific data transformations, i. e. the between and within transformation.

between returns a vector containing the individual means (over time) with the length of the vector equal to the number of individuals (if effect = "individual" (default); if effect = "time", it returns the time means (over individuals)). Between duplicates the values and returns a vector which length is the number of total observations. Within returns a vector containing the values in deviation from the individual means (if effect = "individual", from time means if effect = "time"), the so called demeaned data.

For between, Between, and Within in presence of NA values it can be useful to supply na.rm = TRUE as an additional argument to keep as many observations as possible in the resulting transformation, see also Examples.

See Also

For more functions on class 'pseries' see lag, lead, diff for lagging values, leading values (negative lags) and differencing.

Examples

Run this code
# First, create a pdata.frame
data("EmplUK", package = "plm")
Em <- pdata.frame(EmplUK)

# Then extract a series, which becomes additionally a pseries
z <- Em$output
class(z)

# obtain the matrix representation
as.matrix(z)

# compute the between and within transformations
between(z)
Within(z)

# Between replicates the values for each time observation
Between(z)

# between, Between, and Within transformations on other dimension
between(z, effect = "time")
Between(z, effect = "time")
Within(z, effect = "time")

# NA treatment for between, Between, and Within
z2 <- z
z2[length(z2)] <- NA # set last value to NA
between(z2, na.rm = TRUE) # non-NA value for last individual
Between(z2, na.rm = TRUE) # only the NA observation is lost
Within(z2, na.rm = TRUE)  # only the NA observation is lost

sum(is.na(Between(z2))) # 9 observations lost due to one NA value
sum(is.na(Between(z2, na.rm = TRUE))) # only the NA observation is lost
sum(is.na(Within(z2))) # 9 observations lost due to one NA value
sum(is.na(Within(z2, na.rm = TRUE))) # only the NA observation is lost

Run the code above in your browser using DataCamp Workspace