Skip to contents

Split an index into groups of indexes according to a factor, along either the levels or time periods of the index.

Usage

# S3 method for class 'piar_index'
split(x, f, drop = FALSE, ..., margin = c("levels", "time"))

# S3 method for class 'piar_index'
split(x, f, drop = FALSE, ..., margin = c("levels", "time")) <- value

Arguments

x

A price index, as made by, e.g., elemental_index().

f

A factor or list of factors to group elements of x.

drop

Should levels that do not occur in f be dropped? By default all levels are kept.

...

Further arguments passed to split.default().

margin

Either 'levels' to split over the levels of x (the default), or 'time' to split over the time periods of x.

value

A list of values compatible with the splitting of x, or something that can be coerced into one, recycled if necessary.

Value

split() returns a list of index objects for each level in f. The replacement method replaces these values with the corresponding element of value.

Examples

index <- as_index(matrix(1:6, 2))

split(index, 1:2)
#> $`1`
#> Period-over-period price index for 1 levels over 3 time periods 
#>   1 2 3
#> 1 1 3 5
#> 
#> $`2`
#> Period-over-period price index for 1 levels over 3 time periods 
#>   1 2 3
#> 2 2 4 6
#> 

split(index, c(1, 1, 2), margin = "time")
#> $`1`
#> Period-over-period price index for 2 levels over 2 time periods 
#>   1 2
#> 1 1 3
#> 2 2 4
#> 
#> $`2`
#> Period-over-period price index for 2 levels over 1 time periods 
#>   3
#> 1 5
#> 2 6
#>