R: Coerce time series objects and tibbles with date/date-time...

tk_zoo {timetk} | R Documentation

## Coerce time series objects and tibbles with date/date-time columns to xts.

### Description

Coerce time series objects and tibbles with date/date-time columns to xts.

### Usage

    tk_zoo(data, select = NULL, date_var = NULL, silent = FALSE, ...)

    tk_zoo_(data, select = NULL, date_var = NULL, silent = FALSE, ...)

### Arguments

`data` | A time-based tibble or time-series object.
`select` | Applicable to tibbles and data frames only. The column or set of columns to be coerced to `ts` class.
`date_var` | Applicable to tibbles and data frames only. Column name to be used to `order.by`. `NULL` by default. If `NULL`, function will find the date or date-time column.
`silent` | Used to toggle printing of messages and warnings.
`...` | Additional parameters to be passed to `xts::xts()`. Refer to `xts::xts()`.

### Details

`tk_zoo` is a wrapper for `zoo::zoo()` that is designed to coerce `tibble` objects that have a "time-base" (meaning the values vary with time) to `zoo` class objects. There are three main advantages:

1. Non-numeric columns that are not removed via `select` are dropped and the user is warned. This prevents an error or coercion issue from occurring.

2. The date column is auto-detected if not specified by `date_var`. This takes the effort off the user to assign a date vector during coercion.

3. `ts` objects are automatically coerced if a "timetk index" is present. Refer to `tk_ts()`.

The `select` argument can be used to select subsets of columns from the incoming data.frame. Only columns containing numeric data are coerced. The `date_var` can be used to specify the column with the date index. If `date_var = NULL`, the date / date-time column is interpreted. Optionally, the `order.by` argument from the underlying `zoo::zoo()` function can be used. The user must pass a vector of dates or date-times if `order.by` is used. Important Note: The `...` arguments are passed to `xts::xts()`, which enables additional information (e.g. time zone) to be an attribute of the `zoo` object.

For non-data.frame object classes (e.g. `xts`, `zoo`, `timeSeries`, etc) the objects are coerced using `zoo::zoo()`.

`tk_zoo_` is a nonstandard evaluation method.

### Value

Returns a `zoo` object.

### See Also

`tk_tbl()`, `tk_xts()`, `tk_zooreg()`, `tk_ts()`

### Examples

    library(tidyverse)
    library(timetk)

    ### tibble to zoo: Comparison between tk_zoo() and zoo::zoo()
    data_tbl <- tibble::tibble(
        date = seq.Date(as.Date("2016-01-01"), by = 1, length.out = 5),
        x    = rep("chr values", 5),
        y    = cumsum(1:5),
        z    = cumsum(11:15) * rnorm(1))

    # zoo: Characters will cause error; order.by must be passed a vector of dates
    zoo::zoo(data_tbl[,-c(1,2)], order.by = data_tbl$date)

    # tk_zoo: Character columns dropped with a warning; No need to specify dates (auto detected)
    tk_zoo(data_tbl)

    # ts can be coerced back to zoo
    data_tbl %>%
        tk_ts(start = 2016, freq = 365) %>%
        tk_zoo()

    ### Using select and date_var
    tk_zoo(data_tbl, select = y, date_var = date)

    ### NSE: Enables programming
    date_var <- "date"
    select   <- "y"
    tk_zoo_(data_tbl, select = select, date_var = date_var)

[Package timetk version 2.0.0 Index]