A Time Series List (tsl
for short) is a named list of zoo time series. This type of object, not defined as a class, is used throughout the distantia
package to contain time series data ready for processing and analysis.
The structure and values of a tsl
must fulfill several general conditions:
Structure:
List names match the attributes "name" of the zoo time series.
Zoo time series must have at least one shared column name.
The index (as extracted by
zoo::index()
) of all zoo objects must be of the same class (either "Date", "POSIXct", "numeric", or "integer").The "core data" (as extracted by
zoo::coredata()
) of univariate zoo time series must be of class "matrix".
Values (optional, when full = TRUE
):
All time series have at least one shared numeric column.
There are no NA, Inf, or NaN values in the time series.
This function analyzes a tsl
without modifying it to returns messages describing what conditions are not met, and provides hints on how to fix most issues.
See also
Other tsl_management:
tsl_colnames_clean()
,
tsl_colnames_get()
,
tsl_colnames_set()
,
tsl_count_NA()
,
tsl_handle_NA()
,
tsl_names_clean()
,
tsl_names_get()
,
tsl_names_set()
,
tsl_names_test()
,
tsl_ncol()
,
tsl_nrow()
,
tsl_repair()
,
tsl_split()
,
tsl_subset()
,
tsl_time()
,
tsl_time_class_set()
,
tsl_to_df()
Examples
#creating three zoo time series
#one with NA values
x <- zoo_simulate(
name = "x",
cols = 1,
na_fraction = 0.1
)
#with different number of columns
#wit repeated name
y <- zoo_simulate(
name = "x",
cols = 2
)
#with different time class
z <- zoo_simulate(
name = "z",
cols = 1,
time_range = c(1, 100)
)
#adding a few structural issues
#changing the column name of x
colnames(x) <- c("b")
#converting z to vector
z <- zoo::zoo(
x = runif(nrow(z)),
order.by = zoo::index(z)
)
#storing zoo objects in a list
#with mismatched names
tsl <- list(
a = x,
b = y,
c = z
)
#running full diagnose
tsl <- tsl_diagnose(
tsl = tsl,
full = TRUE
)
#> distantia::tsl_diagnose(): Structural issues:
#> -------------------------------------------
#>
#> - core data of univariate zoo time series must be of class 'matrix': use lapply(tsl, distantia::zoo_vector_to_matrix) to fix this issue.
#>
#> - list and time series names must match and be unique: reset names with distantia::tsl_names_set().
#>
#> - missing column names in zoo time series: use distantia::tsl_colnames_set() to rename columns as needed.
#>
#> - no shared column names across time series: use distantia::tsl_colnames_get() and distantia::ts_colnames_set() to identify and rename columns as needed.
#>
#> - time in all time series must be of the same class: use lapply(tsl, function(x) class(zoo::index(x))) to identify and remove or modify the objects with a mismatching class.
#>
#>
#> Value-related issues:
#> -------------------------
#>
#> - there are NA, Inf, -Inf, or NaN cases in the time series: interpolate or remove them with distantia::tsl_handle_NA().