# format.timestamps: Checking for Regularity In bsts: Bayesian Structural Time Series

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

bsts documentation built on May 30, 2022, 9:11 a.m.