format.timestamps {bsts} | R Documentation

## Checking for Regularity

### Description

Tools for checking if a series of timestamps is 'regular' meaning that it has no duplicates, and no gaps. Checking for regularity can be tricky. For example, if you have monthly observations with `Date` or `POSIXt` timestamps then gaps between timestamps can be 28, 29, 30, or 31 days, but the series is still "regular".

### Usage

      NoDuplicates(timestamps)
      NoGaps(timestamps)
      IsRegular(timestamps)

      HasDuplicateTimestamps(bsts.object)

### Arguments

`timestamps` | A set of (possibly irregular or non-unique) timestamps. This could be a set of integers (like 1, 2, , 3...), a set of numeric like (1945, 1945.083, 1945.167, ...) indicating years and fractions of years, a `Date` object, or a `POSIXt` object.
`bsts.object` | A bsts model object.

### Value

All four functions return scalar logical values. `NoDuplicates` returns `TRUE` if all elements of `timestamps` are unique.

`NoGaps` examines the smallest nonzero gap between time points. As long as no gaps between time points are more than twice as wide as the smallest gap, it returns `TRUE`, indicating that there are no missing timestamps. Otherwise it returns `FALSE`.

`IsRegular` returns `TRUE` if `NoDuplicates` and `NoGaps` both return `TRUE`.

`HasDuplicateTimestamps` returns `FALSE` if the data used to fit bsts.model either has NULL timestamps, or if the timestamps contain no duplicate values.

### Author(s)

Steven L. Scott steve.the.bayesian@gmail.com

### Examples

      first <- as.POSIXct("2015-04-19 08:00:04")
      monthly <- seq(from = first, length.out = 24, by = "month")
      IsRegular(monthly) ## TRUE

      skip.one <- monthly[-8]
      IsRegular(skip.one) ## FALSE

      has.duplicates <- monthly
      has.duplicates[1] <- has.duplicates[2]
      IsRegular(has.duplicates) ## FALSE

[Package bsts version 0.9.1 Index]