Add a small amount of noise to a numeric vector.

`jitter(x, factor = 1, amount = NULL)`

x

numeric vector to which *jitter* should be added.

factor

numeric.

amount

numeric; if positive, used as *amount* (see below),
otherwise, if `= 0`

the default is `factor * z/50`

.

Default (`NULL`

): `factor * d/5`

where `d`

is about
the smallest difference between `x`

values.

`jitter(x, …)`

returns a numeric of the same length as
`x`

, but with an `amount`

of noise added in order to break
ties.

The result, say `r`

, is `r <- x + runif(n, -a, a)`

where `n <- length(x)`

and `a`

is the `amount`

argument (if specified).

Let `z <- max(x) - min(x)`

(assuming the usual case).
The amount `a`

to be added is either provided as *positive*
argument `amount`

or otherwise computed from `z`

, as
follows:

If `amount == 0`

, we set `a <- factor * z/50`

(same as S).

If `amount`

is `NULL`

(*default*), we set
`a <- factor * d/5`

where *d* is the smallest
difference between adjacent unique (apart from fuzz) `x`

values.

Chambers, J. M., Cleveland, W. S., Kleiner, B. and Tukey, P.A. (1983)
*Graphical Methods for Data Analysis.* Wadsworth; figures 2.8,
4.22, 5.4.

Chambers, J. M. and Hastie, T. J. (1992)
*Statistical Models in S.*
Wadsworth & Brooks/Cole.

`rug`

which you may want to combine with `jitter`

.

# NOT RUN { round(jitter(c(rep(1, 3), rep(1.2, 4), rep(3, 3))), 3) ## These two 'fail' with S-plus 3.x: jitter(rep(0, 7)) jitter(rep(10000, 5)) # }