Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

make.index.unique

Force Time Values To Be Unique


Description

A generic function to force sorted time vectors to be unique. Useful for high-frequency time-series where original time-stamps may have identical values. For the case of xts objects, the default eps is set to ten microseconds. In practice this advances each subsequent identical time by eps over the previous (possibly also advanced) value.

Usage

make.index.unique(x, eps = 1e-06, drop=FALSE, fromLast=FALSE, ...)

make.time.unique(x, eps = 1e-06, drop=FALSE, fromLast=FALSE, ...)

Arguments

x

An xts object, or POSIXct vector.

eps

value to add to force uniqueness.

drop

drop duplicates instead of adjusting by eps

fromLast

if drop=TRUE, fromLast controls which duplicated times are dropped. If fromLast=FALSE, the earliest observation with an identical timestamp is kept with subsequent observations dropped.

...

unused

Details

The returned time-series object will have new time-stamps so that isOrdered( .index(x) ) evaluates to TRUE.

Value

A modified version of x.

Note

Incoming values must be pre-sorted, and no check is done to make sure that this is the case. If the index values are of storage.mode ‘integer’, they will be coerced to ‘double’ if drop=FALSE.

Author(s)

Jeffrey A. Ryan

See Also

Examples

ds <- options(digits.secs=6) # so we can see the change

x <- xts(1:10, as.POSIXct("2011-01-21") + c(1,1,1,2:8)/1e3)
x
make.index.unique(x)

options(ds)

xts

eXtensible Time Series

v0.12.1
GPL (>= 2)
Authors
Jeffrey A. Ryan [aut, cph], Joshua M. Ulrich [cre, aut], Ross Bennett [ctb], Corwin Joy [ctb]
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.