as_index {piar}R Documentation

Coerce to a price index

Description

Coerce pre-computed index values into an index object.

Usage

as_index(x, ...)

## Default S3 method:
as_index(x, ..., chainable = TRUE)

## S3 method for class 'matrix'
as_index(x, ..., chainable = TRUE)

## S3 method for class 'data.frame'
as_index(x, cols = NULL, ..., chainable = TRUE)

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

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

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 is a fixed-base (direct) index.

cols

Deprecated. A vector giving the positions/names of the period, level, and value columns in x. The default assumes that the first column contains time periods, the second contains levels, and the third contains index values.

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 method 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 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.

Value

as_index() returns 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.

See Also

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

Examples

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

index <- with(prices, elemental_index(rel, period, ea))

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


[Package piar version 0.7.0 Index]