I am making breaks based on input values in R, and then applying equal intervals based on those values.

To do this I supply an input vector:

```
for_break = c(-100, -90, -80, -50, 0, 3, 5, 20, 30, 40, 80)
```

then I apply equal interval breaks, with 5 intervals total using:

```
library(classInt)
breaks = classIntervals(for_break, n = 5, style = "equal", intervalClosure = "right")
```

I return the breaks with:

```
breaks_num = breaks$brks
```

which returns:

```
[1] -100 -64 -28 8 44 80
```

I want to have a break centered around the number 0 though.

Is there a way to supply an input vector and provide equal interval spacing around zero on both the positive and negative side?

As an example if I supplied this input vector:

```
c(-8, -6, -3, -2, 2, 4, 6, 9)
```

and specified that I wanted equal spacing on the positive and negative side of zero, with 3 intervals on each side I would get:

```
c(-8.000, -5.333, -2.666, 0.000, 3.000, 6.000, 9.000)
```

What about:

```
for_break = c(-100, -90, -80, -50, 0, 3, 5, 20, 30, 40, 80)
equalSpacing <- function( vector, per.side ) {
negs <- seq.int( from = min( vector ), to = 0, length.out = per.side + 1L )
pos <- seq.int( from = 0, to = max( vector ), length.out = per.side + 1L )
return( c( negs, pos[ pos != 0 ] ) )
}
equalSpacing( for_break, 4 )
```