## A quick review of intervals

The **open interval** from a to b, denoted **(a, b)**, consists of all numbers between a and b excluding the endpoints a and b.

Open circles in the graph indicate that the endpoints are excluded:

The **closed interval** from a to b, denoted **[a, b]**, consists of all numbers between a and b including the endpoints a and b.

Solid circles in the graph indicate that the endpoints are included:

The symbol -∞ indicates that the interval extends indefinitely to the left:

And ∞ indicates that the interval extends indefinitely to the right:

## Create intervals in R

We will use the ** intervals **package in R to create intervals.

The function ** Intervals()** takes as input a matrix and creates a collection of intervals with common endpoints closure.

Here’s an example:

library("intervals") # x is a collection of intervals # that are all left-closed and right-open x = Intervals( matrix(c(3, 9, -1, 4, 2, Inf), nrow = 3, byrow = TRUE), closed = c(TRUE, FALSE), # intervals are of the form [a, b) type = "Z" # inputs are integers ) # name the intervals rownames(x) = c("a","b","c") print(x)

**Output:**

Object of class Intervals 3 intervals over R: a [3, 9) b [-1, 4) c [2, Inf)

If you want a collection of intervals with different endpoints closure, use the function: ** Intervals_full()**.

Alternatively you can transform an “*Intervals*” object to an “*Intervals_full*” object using the following code:

y = as( x, "Intervals_full" ) print(y)

**Output:**

Object of class Intervals_full 3 intervals over R: a [3, 9) b [-1, 4) c [2, Inf)

Open all intervals in y

open_intervals(y) print(y)

**Output:**

Object of class Intervals_full 3 intervals over Z: (2, 9) (-2, 4) (1, Inf)

Now we need to close some endpoints in y.

y has 3 intervals, so it has 6 endpoints, numbered from 1 to 6 and counted vertically as follows:

1 4

2 5

3 6

# closing some endpoints in y closed(y)[1] = TRUE closed(y)[3] = TRUE closed(y)[4] = TRUE print(y)

**Output:**

Object of class Intervals_full 3 intervals over Z: [3, 9] [-1, 4) [2, Inf)

## Graph intervals in R

plot(x, xlim = c(-2, 10))

**Output:**

plot(y, xlim = c(-2, 10))

**Output:**

## References

For more information, refer to the “*intervals*” package documentation on CRAN.