Learn R Programming

xts (version 0.14.1)

to.period: Convert time series data to an OHLC series

Description

Convert an OHLC or univariate object to a specified periodicity lower than the given data object. For example, convert a daily series to a monthly series, or a monthly series to a yearly one, or a one minute series to an hourly series.

Usage

to.period(
  x,
  period = "months",
  k = 1,
  indexAt = NULL,
  name = NULL,
  OHLC = TRUE,
  ...
)

to.minutes(x, k, name, ...)

to.minutes3(x, name, ...)

to.minutes5(x, name, ...)

to.minutes10(x, name, ...)

to.minutes15(x, name, ...)

to.minutes30(x, name, ...)

to.hourly(x, name, ...)

to.daily(x, drop.time = TRUE, name, ...)

to.weekly(x, drop.time = TRUE, name, ...)

to.monthly(x, indexAt = "yearmon", drop.time = TRUE, name, ...)

to.quarterly(x, indexAt = "yearqtr", drop.time = TRUE, name, ...)

to.yearly(x, drop.time = TRUE, name, ...)

Value

An object of the original type, with new periodicity.

Arguments

x

A univariate or OHLC type time-series object.

period

Period to convert to. See details.

k

Number of sub periods to aggregate on (only for minutes and seconds).

indexAt

Convert final index to new class or date. See details.

name

Override column names?

OHLC

Should an OHLC object be returned? (only OHLC = TRUE currently supported)

...

Additional arguments.

drop.time

Remove time component of POSIX datestamp (if any)?

Author

Jeffrey A. Ryan

Details

The result will contain the open and close for the given period, as well as the maximum and minimum over the new period, reflected in the new high and low, respectively. Aggregate volume will also be calculated if applicable.

An easy and reliable way to convert one periodicity of data into any new periodicity. It is important to note that all dates will be aligned to the end of each period by default - with the exception of to.monthly() and to.quarterly(), which use the zoo package's yearmon and yearqtr classes, respectively.

Valid period character strings include: "seconds", "minutes", "hours", "days", "weeks", "months", "quarters", and "years". These are calculated internally via endpoints(). See that function's help page for further details.

To adjust the final indexing style, it is possible to set indexAt to one of the following: ‘yearmon’, ‘yearqtr’, ‘firstof’, ‘lastof’, ‘startof’, or ‘endof’. The final index will then be yearmon, yearqtr, the first time of the period, the last time of the period, the starting time in the data for that period, or the ending time in the data for that period, respectively.

It is also possible to pass a single time series, such as a univariate exchange rate, and return an OHLC object of lower frequency - e.g. the weekly OHLC of the daily series.

Setting drop.time = TRUE (the default) will convert a series that includes a time component into one with just a date index, since the time component is often of little value in lower frequency series.

Examples

Run this code

data(sample_matrix)

samplexts <- as.xts(sample_matrix)

to.monthly(samplexts)
to.monthly(sample_matrix)

str(to.monthly(samplexts))
str(to.monthly(sample_matrix))

Run the code above in your browser using DataLab