Read indexing returns interval_index subsets while preserving interval/key
order; out-of-order selectors are canonicalized with a warning. Replacement
indexing is blocked.
Usage
# S3 method for class 'interval_index'
x[i, ...]
# S3 method for class 'interval_index'
x[[i, ...]]
# S3 method for class 'interval_index'
x[i] <- value
# S3 method for class 'interval_index'
x[[i]] <- value
# S3 method for class 'interval_index'
x$name
# S3 method for class 'interval_index'
x$name <- valueValue
Read methods return interval payload values/subsets; replacement forms always error.
For $: the matched payload element.
No return value; always errors because replacement indexing is unsupported.
Details
Read indexing preserves canonical interval order in returned subsets.
Integer/character vectors are treated as selectors and canonicalized to interval-order output.
Out-of-order selector vectors trigger a warning and are canonicalized.
Duplicate selectors are rejected.
[[and$return payload values.Replacement indexing (
[<-,[[<-,$<-) is unsupported.
Examples
ix <- interval_index(a = "A", b = "B", c = "C", start = c(1, 3, 5), end = c(2, 4, 6))
ix[c(3, 1)] # warning; result returned in interval order
#> Warning: Ordered subsetting canonicalizes selector order; pre-sort and unique selectors to silence this warning.
#> Named interval_index with 2 elements, default bounds [start, end).
#>
#> Elements (by interval start order):
#>
#> $a (interval [1, 2))
#> [1] "A"
#>
#> $c (interval [5, 6))
#> [1] "C"
#>
ix[c("c", "a")] # warning; result returned in interval order
#> Warning: Ordered subsetting canonicalizes selector order; pre-sort and unique selectors to silence this warning.
#> Named interval_index with 2 elements, default bounds [start, end).
#>
#> Elements (by interval start order):
#>
#> $a (interval [1, 2))
#> [1] "A"
#>
#> $c (interval [5, 6))
#> [1] "C"
#>
ix[c(TRUE, FALSE, TRUE)]
#> Named interval_index with 2 elements, default bounds [start, end).
#>
#> Elements (by interval start order):
#>
#> $a (interval [1, 2))
#> [1] "A"
#>
#> $c (interval [5, 6))
#> [1] "C"
#>
ix[["b"]]
#> [1] "B"
ix$b
#> [1] "B"
try(ix[c(2, 2)])
#> Error in .ord_normalize_selector_positions(idx) :
#> Ordered subsetting does not allow duplicate indices.
try(ix$b <- "updated")
#> Error in `$<-.interval_index`(`*tmp*`, b, value = "updated") :
#> `$<-` is not supported for interval_index.