Learn R Programming

plm (version 2.6-4)

pseries: panel series

Description

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

Usage

# S3 method for pseries
print(x, ...)

# S3 method for pseries as.matrix(x, idbyrow = TRUE, ...)

# S3 method for pseries plot( x, plot = c("lattice", "superposed"), scale = FALSE, transparency = TRUE, col = "blue", lwd = 1, ... )

# S3 method for pseries summary(object, ...)

# S3 method for summary.pseries plot(x, ...)

# S3 method for summary.pseries print(x, ...)

Sum(x, ...)

# S3 method for default Sum(x, effect, ...)

# S3 method for pseries Sum(x, effect = c("individual", "time", "group"), ...)

# S3 method for matrix Sum(x, effect, ...)

Between(x, ...)

# S3 method for default Between(x, effect, ...)

# S3 method for pseries Between(x, effect = c("individual", "time", "group"), ...)

# S3 method for matrix Between(x, effect, ...)

between(x, ...)

# S3 method for default between(x, effect, ...)

# S3 method for pseries between(x, effect = c("individual", "time", "group"), ...)

# S3 method for matrix between(x, effect, ...)

Within(x, ...)

# S3 method for default Within(x, effect, ...)

# S3 method for pseries Within(x, effect = c("individual", "time", "group", "twoways"), ...)

# S3 method for matrix Within(x, effect, ...)

Value

All these functions return an object of class pseries or a matrix, except:

between, which returns a numeric vector or a matrix; as.matrix, which returns a matrix.

Arguments

x, object

a pseries or a matrix; or a summary.pseries object,

...

further arguments, e. g., na.rm = TRUE for transformation functions like between, see Details and Examples.

idbyrow

if TRUE in the as.matrix method, the lines of the matrix are the individuals,

plot, scale, transparency, col, lwd

plot arguments,

effect

for the pseries methods: character string indicating the "individual", "time", or "group" effect, for Within "twoways" additionally; for non-pseries methods, effect is a factor specifying the dimension ("twoways" is not possible),

Author

Yves Croissant

Details

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

between returns a vector/matrix 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/matrix which length/number of rows is the number of total observations. Within returns a vector/matrix containing the values in deviation from the individual means (if effect = "individual", from time means if effect = "time"), the so called demeaned data. Sum returns a vector/matrix with sum per individual (over time) or the sum per time period (over individuals) with effect = "individual" or effect = "time", respectively, and has length/ number of rows of the total observations (like Between).

For between, Between, Within, and Sum 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. na.rm is passed on to the mean()/sum() function used by these transformations (i.e., it does not remove NAs prior to any processing!), see also Examples.

See Also

is.pseries() to check if an object is a pseries. 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 and Sum replicate the values for each time observation
Between(z)
Sum(z)

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

# NA treatment for between, Between, Within, and Sum
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(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
sum(is.na(Sum(z2))) # 9 observations lost due to one NA value
sum(is.na(Sum(z2, na.rm = TRUE))) # only the NA observation is lost

Run the code above in your browser using DataLab