Learn R Programming

piar (version 0.8.2)

as_index: Coerce to a price index

Description

Coerce pre-computed index values into an index object.

Usage

as_index(x, ...)

# S3 method for default as_index(x, ...)

# S3 method for matrix as_index(x, ..., chainable = TRUE, contrib = FALSE)

# S3 method for data.frame as_index(x, ..., contrib = FALSE)

# S3 method for chainable_piar_index as_index(x, ..., chainable = TRUE)

# S3 method for direct_piar_index as_index(x, ..., chainable = FALSE)

# S3 method for mts as_index(x, ...)

Value

A price index that inherits from piar_index. If chainable = TRUE then this is a period-over-period price index that also inherits from chainable_piar_index; otherwise, it is a fixed-base index that inherits from direct_piar_index.

Arguments

x

An object to coerce into a price index.

...

Further arguments passed to or used by methods.

chainable

Are the index values in x period-over-period indexes, suitable for a chained calculation (the default)? This should be FALSE when x contains fixed-base (direct) index values.

contrib

Should the index values in x be used to construct percent-change contributions? The default does not make contributions.

Details

Numeric matrices are coerced into an index object by treating each column as a separate time period, and each row as a separate level of the index (e.g., an elemental aggregate). Column names are used to denote time periods, and row names are used to denote levels (so they must be unique). This essentially reverses calling as.matrix() on an index object. If a dimension is unnamed, then it is given a sequential label from 1 to the size of that dimension. The default and multiple time series methods coerces x to a matrix prior to using the matrix method.

The data frame method for as_index() is best understood as reversing the effect of as.data.frame() on an index object. It constructs a matrix by taking the levels of x[[1]] as columns and the levels of x[[2]] as rows (coercing to a factor if necessary). It then populates this matrix with the corresponding values in x[[3]], and uses the matrix method for as_index(). If contrib = TRUE and there is a fourth list column of product contributions then these are also included in the resulting index.

If x is a period-over-period index then it is returned unchanged when chainable = TRUE and chained otherwise. Similarly, if x is a fixed-base index then it is returned unchanged when chainable = FALSE and unchain otherwise.

See Also

as.matrix() and as.data.frame() for coercing an index into a tabular form.

Examples

Run this code
prices <- data.frame(
  rel = 1:8,
  period = rep(1:2, each = 4),
  ea = rep(letters[1:2], 4)
)

index <- elemental_index(prices, rel ~ period + ea)

all.equal(as_index(as.data.frame(index)), index)
all.equal(as_index(as.matrix(index)), index)

Run the code above in your browser using DataLab