untie {surveillance} | R Documentation |
Randomly Break Ties in Data
Description
This is a generic function intended to randomly break tied data in a
way similar to what jitter
does: tie-breaking is
performed by shifting all data points by a random amount.
The surveillance package defines methods for matrices,
"epidataCS"
, and a default method for numeric vectors.
Usage
untie(x, amount, ...)
## S3 method for class 'epidataCS'
untie(x, amount = list(t=NULL, s=NULL),
minsep = list(t=0, s=0), direction = "left", keep.sources = FALSE,
..., verbose = FALSE)
## S3 method for class 'matrix'
untie(x, amount = NULL, minsep = 0,
constraint = NULL, giveup = 1000, ...)
## Default S3 method:
untie(x, amount = NULL, minsep = 0,
direction = c("symmetric", "left", "right"), sort = NULL,
giveup = 1000, ...)
Arguments
x |
the data to be untied. |
amount |
upper bound for the random amount by which data are shifted.
|
minsep |
minimum separation of jittered points. Can only be
obeyed if much smaller than |
keep.sources |
logical ( |
constraint |
an object of class |
giveup |
number of attempts after which the algorithm should stop trying to generate new points. |
direction |
one of |
sort |
logical indicating if the jittered vector should be sorted. Defaults to doing so if the original vector was already sorted. |
... |
For the |
verbose |
logical passed to |
Details
For numeric vectors (default method), the jittered version is the
same as for jitter(x, amount=amount)
, if
direction="symmetric"
(and amount
is non-NULL
),
and otherwise uses
x
“+-” runif(length(x), 0, amount)
.
For matrices, a vector uniformly drawn from the disc with radius
amount
is added to each point (row).
For "epidataCS"
, amount
is a list stating the amounts
for the temporal and/or spatial dimension, respectively. It then
uses the specific methods with arguments constraint=x$W
,
direction
, and sort=TRUE
. Note that this implements a
simplistic approach of tie-breaking where all events are assumed to be
subject to the same amounts of censoring, and the default amounts may
not be sensible choices.
Value
the untied (jittered) data.
Author(s)
Sebastian Meyer
See Also
Examples
# vector example
set.seed(123)
untie(c(rep(1,3), rep(1.2, 4), rep(3,3)), direction="left", sort=FALSE)
# spatial example
data(imdepi)
coords <- coordinates(imdepi$events)
table(duplicated(coords))
plot(coords, cex=sqrt(multiplicity(coords)))
set.seed(1)
coords_untied <- untie(coords)
stopifnot(!anyDuplicated(coords_untied))
points(coords_untied, col=2) # shifted by very small amount in this case