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

DTSg

DTSg Class


Description

The DTSg class is the working horse of the package. It is an R6Class and offers an S3 interface in addition to its native R6 interface. In the usage sections of the documentation only the S3 interface is shown, however, the examples always show both possibilities. Generally, they are very similar anyway. While the R6 interface always has the object first and the method is selected with the help of the $ operator (for instance, x$cols()), the S3 interface always has the method first and the object as its first argument (for instance, cols(x)). An exception is the new method. It is not an S3 method, but an abused S4 constructor with the character string "DTSg" as its first argument. Regarding the R6 interface, the DTSg class generator has to be used to access the new method with the help of the $ operator.

Usage

new(Class, values, ID = "", parameter = "", unit = "", variant = "",
 aggregated = FALSE, fast = FALSE, swallow = FALSE, na.status = c("explicit",
 "implicit", "undecided"))

Arguments

Class

A character string. Must be "DTSg" in order to create a DTSg object. Otherwise a different object may or may not be created (S4 constructor only).

values

A data.frame or object inherited from class data.frame, for instance, data.table. Its first column must be of class POSIXct or coercible to it. It serves as the object's time index and is renamed to .dateTime.

ID

A character string specifying the ID (name) of the time series.

parameter

A character string specifying the parameter of the time series.

unit

A character string specifying the unit of the time series.

variant

A character string specifying further metadata of the time series, for instance, "min" to point out that it is a time series of lower bound measurements.

aggregated

A logical signalling how the timestamps of the series have to be interpreted: as snap-shots (FALSE) or as periods between subsequent timestamps (TRUE).

fast

A logical signalling if all rows (FALSE) or only the first 1000 rows (TRUE) shall be used to check the object's integrity and for the automatic detection of the time series' periodicity.

swallow

A logical signalling if the object provided through the values argument shall be “swallowed” by the DTSg object, i.e. no copy of the data shall be made. This is generally more resource efficient, but only works if the object provided through the values argument is a data.table. Be warned, however, that if the creation of the DTSg object fails for some reason, the first column of the provided data.table might have been coerced to POSIXct and keyed (see setkey for further information). Furthermore, all references to the “swallowed” data.table in the global (and only the global) environment are removed upon successful creation of a DTSg object.

na.status

A character string. Either "explicit", which makes missing timestamps according to the recognised periodicity explicit, or "implicit", which removes timestamps with missing values on all value columns, or "undecided" for no such action. Please note that DTSg objects work best with explicitly missing values.

Value

Returns a DTSg object.

Methods

A DTSg object has the following methods:

  • aggregate: See aggregate for further information.

  • alter: See alter for further information.

  • clone: See clone for further information.

  • colapply: See colapply for further information.

  • cols: See cols for further information.

  • getCol: See getCol for further information.

  • merge: See merge for further information.

  • nas: See nas for further information.

  • plot: See plot for further information.

  • print: See print for further information.

  • refresh: See refresh for further information.

  • rollapply: See rollapply for further information.

  • rowaggregate: See rowaggregate for further information.

  • rowbind: See rowbind for further information.

  • setColNames: See setColNames for further information.

  • setCols: See setCols for further information.

  • subset: See subset for further information.

  • summary: See summary for further information.

  • values: See values for further information.

Fields

A DTSg object has the following fields or properties as they are often called. They are implemented through so called active bindings which means that they can be accessed and actively set with the help of the $ operator (for instance, x$ID gets the value of the ID field and x$ID <- "River Flow" sets its value). Please note that fields are always modified in place, i.e. no clone (copy) of the object is made beforehand. See clone for further information. Some of the fields are read-only though:

  • aggregated: Same as aggregated argument.

  • fast: Same as fast argument.

  • ID: Same as ID argument. It is used as the title of plots.

  • na.status: Same as na.status argument. When set, the values of the object are expanded or collapsed accordingly.

  • parameter: Same as parameter argument. It is used as the label of the primary axis of plots.

  • periodicity: A difftime object for a regular and a character string for an irregular DTSg object describing its periodicity or containing "unrecognised" in case it could not be detected. When set, the periodicity of the time series is changed as specified. See by argument of alter for further information.

  • regular: A logical signalling if all lags in seconds between subsequent timestamps are the same (TRUE) or if some are different (FALSE). A, for instance, monthly time series is considered irregular in this sense (read-only).

  • timestamps: An integer showing the total number of timestamps of the time series (read-only).

  • timezone: A character string containing the time zone of the time series. When set, the series is converted to the specified time zone. Only names from OlsonNames are accepted.

  • unit: Same as unit argument. It is added to the label of the primary axis of plots when the parameter field is set.

  • variant: Same as variant argument. It is added to the label of the primary axis of plots when the parameter field is set.

The parameter, unit and variant fields are especially useful for time series with a single variable (value column) only.

Options

The behaviour of DTSg objects can be customised with the help of the following option. See options for further information:

  • DTSgClone: A logical specifying if DTSg objects are, by default, modified in place (FALSE) or if a clone (copy) is made beforehand (TRUE).

Note

Due to the POSIXct nature of the .dateTime column, the same sub-second accuracy, issues and limitations apply to DTSg objects. In order to prevent at least some of the possible precision issues, the lags in seconds between subsequent timestamps are rounded to microseconds during integrity checks. This corresponds to the maximum value allowed for options("digits.secs"). As a consequence, time series with a sub-second accuracy higher than a microsecond will never work.

Some of the methods which take a function as an argument (colapply and rollapply) hand over to it an additional list argument called .helpers containing useful data for the development of user defined functions (see the respective help pages for further information). This can of course be a problem for functions like cumsum which do not expect such a thing. A solution is to set the helpers argument of the respective method to FALSE.

See Also

Examples

# new DTSg object
## R6 constructor
DTSg$new(values = flow, ID = "River Flow")

## S4 constructor
new(Class = "DTSg", values = flow, ID = "River Flow")

DTSg

A Class for Working with Time Series Based on 'data.table' and 'R6' with Largely Optional Reference Semantics

v0.7.0
MIT + file LICENSE
Authors
Gerold Hepp [aut, cre]
Initial release

We don't support your browser anymore

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