R: Add ‘Jitter’ (Noise) to Numbers

jitter {base} | R Documentation

## Add ‘Jitter’ (Noise) to Numbers

### Description

Add a small amount of noise to a numeric vector.

### Usage

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

### Arguments

`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.

### Details

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.

### Value

`jitter(x,...)` returns a numeric of the same length as `x`, but with an `amount` of noise added in order to break ties.

### Author(s)

Werner Stahel and Martin Maechler, ETH Zurich

### References

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.

### See Also

`rug` which you may want to combine with `jitter`.

### Examples

    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))

[Package base version 2.8.1 Index]