Nothing
#ts_norm_diff
#'@title Time Series Diff
#'@description It receives as parameter the variable remove_outliters. This function calculates the difference between the values of a time series
#'@param remove_outliers logical: if TRUE (default) outliers will be removed.
#'@return a `ts_norm_diff` object.
#'@examples
#'# time series to normalize
#'data(sin_data)
#'
#'# convert to sliding windows
#'ts <- ts_data(sin_data$y, 10)
#'ts_head(ts, 3)
#'summary(ts[,10])
#'
#'# normalization
#'preproc <- ts_norm_diff()
#'preproc <- fit(preproc, ts)
#'tst <- transform(preproc, ts)
#'ts_head(tst, 3)
#'summary(tst[,9])
#'@export
ts_norm_diff <- function(remove_outliers = TRUE) {
obj <- dal_transform()
obj$remove_outliers <- remove_outliers
class(obj) <- append("ts_norm_diff", class(obj))
return(obj)
}
#'@export
fit.ts_norm_diff <- function(obj, data, ...) {
data <- data[,2:ncol(data)]-data[,1:(ncol(data)-1)]
obj <- fit.ts_norm_gminmax(obj, data)
return(obj)
}
#'@export
transform.ts_norm_diff <- function(obj, data, x=NULL, ...) {
if (!is.null(x)) {
ref <- attr(data, "ref")
sw <- attr(data, "sw")
x <- x-ref
x <- (x-obj$gmin)/(obj$gmax-obj$gmin)
return(x)
}
else {
ref <- as.vector(data[,ncol(data)])
cnames <- colnames(data)
for (i in (ncol(data)-1):1)
data[,i+1] <- data[, i+1] - data[,i]
data <- data[,2:ncol(data)]
data <- (data-obj$gmin)/(obj$gmax-obj$gmin)
attr(data, "ref") <- ref
attr(data, "sw") <- ncol(data)
attr(data, "cnames") <- cnames
return(data)
}
}
#'@export
inverse_transform.ts_norm_diff <- function(obj, data, x=NULL, ...) {
cnames <- attr(data, "cnames")
ref <- attr(data, "ref")
sw <- attr(data, "sw")
if (!is.null(x)) {
x <- x * (obj$gmax-obj$gmin) + obj$gmin
x <- x + ref
return(x)
}
else {
data <- data * (obj$gmax-obj$gmin) + obj$gmin
data <- cbind(data, ref)
for (i in (ncol(data)-1):1)
data[,i] <- data[, i+1] - data[,i]
colnames(data) <- cnames
attr(data, "ref") <- ref
attr(data, "sw") <- ncol(data)
attr(data, "cnames") <- cnames
return(data)
}
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.