diff_vec  R Documentation 
diff_vec()
applies a Differencing Transformation.
diff_inv_vec()
inverts the differencing transformation.
diff_vec(
x,
lag = 1,
difference = 1,
log = FALSE,
initial_values = NULL,
silent = FALSE
)
diff_inv_vec(x, lag = 1, difference = 1, log = FALSE, initial_values = NULL)
x 
A numeric vector to be differenced or inverted. 
lag 
Which lag (how far back) to be included in the differencing calculation. 
difference 
The number of differences to perform.

log 
If log differences should be calculated. Note that difference inversion of a logdifference is approximate. 
initial_values 
Only used in the 
silent 
Whether or not to report the initial values used to invert the difference as a message. 
Benefits:
This function is NA
padded by default so it works well with dplyr::mutate()
operations.
Difference Calculation
Single differencing, diff_vec(x_t)
is equivalent to: x_t  x_t1
,
where the subscript _t1 indicates the first lag.
This transformation can be interpereted as change.
Double Differencing Calculation
Double differencing, diff_vec(x_t, difference = 2)
is equivalent to:
(x_t  x_t1)  (x_t  x_t1)_t1
, where the subscript _t1 indicates the first lag.
This transformation can be interpereted as acceleration.
Log Difference Calculation
Log differencing, diff_vec(x_t, log = TRUE)
is equivalent to:
log(x_t)  log(x_t1) = log(x_t / x_t1)
, where x_t is the series and x_t1 is the first lag.
The 1st difference diff_vec(difference = 1, log = TRUE)
has an interesting property
where diff_vec(difference = 1, log = TRUE) %>% exp()
is approximately 1 + rate of change.
A numeric vector
Advanced Differencing and Modeling:
step_diff()
 Recipe for tidymodels
workflow
tk_augment_differences()
 Adds many differences to a data.frame
(tibble
)
Additional Vector Functions:
Box Cox Transformation: box_cox_vec()
Lag Transformation: lag_vec()
Differencing Transformation: diff_vec()
Rolling Window Transformation: slidify_vec()
Loess Smoothing Transformation: smooth_vec()
Fourier Series: fourier_vec()
Missing Value Imputation for Time Series: ts_impute_vec()
, ts_clean_vec()
library(dplyr)
#  USAGE 
diff_vec(1:10, lag = 2, difference = 2) %>%
diff_inv_vec(lag = 2, difference = 2, initial_values = 1:4)
#  VECTOR 
# Get Change
1:10 %>% diff_vec()
# Get Acceleration
1:10 %>% diff_vec(difference = 2)
# Get approximate rate of change
1:10 %>% diff_vec(log = TRUE) %>% exp()  1
#  MUTATE 
m4_daily %>%
group_by(id) %>%
mutate(difference = diff_vec(value, lag = 1)) %>%
mutate(
difference_inv = diff_inv_vec(
difference,
lag = 1,
# Add initial value to calculate the inverse difference
initial_values = value[1]
)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.