# interval_included-methods: Assess inclusion of one set of intervals with respect to... In intervals: Tools for Working with Points and Intervals

 interval_included R Documentation

## Assess inclusion of one set of intervals with respect to another

### Description

Determine which intervals in the one set are completely included in the intervals of a second set.

### Usage

``````## S4 method for signature 'Intervals,Intervals'
interval_included(from, to, check_valid = TRUE)
## S4 method for signature 'Intervals_full,Intervals_full'
interval_included(from, to, check_valid = TRUE)
``````

### Arguments

 `from` An `"Intervals"` or `"Intervals_full"` object, or a vector of class `"numeric"`. `to` An `"Intervals"` or `"Intervals_full"` object, or a vector of class `"numeric"`. `check_valid` Should `validObject` be called before passing to compiled code? This, among other things, verifies that endpoints are of data type `"numeric"` and the `closed` vector/matrix is appropriately sized and of the correct data type. (Compiled code does no further checking.)

### Value

A list, with one element for each row/component of `from`. The elements are vectors of indices, indicating which `to` rows (or components, for the `"numeric"` method) are completely included within each interval in `from`. A list element of length 0 indicates no included elements. Note that empty `to` elements are not included in anything, and empty `from` elements do not include anything.

See `interval_overlap` for partial overlaps – i.e., at at least a point.

### Examples

``````# Note that 'from' and 'to' contain valid but empty intervals.

to <- Intervals(
matrix(
c(
2,  6,
2,  8,
2,  9,
4,  4,
6,  8
),
ncol = 2, byrow = TRUE
),
closed = c( TRUE, FALSE ),
type = "Z"
)

from <- Intervals(
matrix(
c(
2,  8,
8,  9,
6,  9,
11, 12,
3,  3
),
ncol = 2, byrow = TRUE
),
closed = c( TRUE, FALSE ),
type = "Z"
)
rownames(from) <- letters[1:nrow(from)]

from
to
interval_included(from, to)

closed(to) <- TRUE
to
interval_included(from, to)

# Intervals_full

F <- FALSE
T <- TRUE

to <- Intervals_full(
rep( c(2,8), c(4,4) ),
closed = matrix( c(F,F,T,T,F,T,F,T), ncol = 2 ),
type = "R"
)

type( from ) <- "R"
from <- as( from, "Intervals_full" )

from
to
interval_included(from, to)

# Testing

B <- 1000

x1 <- rexp( B, 1/1000 )
s1 <- runif( B, max=5 )
x2 <- rexp( B, 1/1000 )
s2 <- runif( B, max=3 )

from <- Intervals_full( cbind( x1, x1 + s1 ) )
to <- Intervals_full( cbind( x2, x2 + s2 ) )

ii <- interval_included( from, to )
ii_match <- which( sapply( ii, length ) > 0 )

from[ ii_match[1:3], ]
lapply( ii[ ii_match[1:3] ], function(x) to[x,] )

included <- to[ unlist( ii ), ]
dim( included )

interval_intersection( included, interval_complement( from ) )
``````

intervals documentation built on Sept. 11, 2024, 9:05 p.m.