我有一个相当大的时间序列,包含 4 个变量的大约 14k 个观察值(date
, x
, y
, z
).
我怎样才能,(与功能相反diff( df$vector, lag = 1)
它计算当前值之间的差值(t
)和上一个(t-1
)),计算每个值与下一个值 (t+1
) 和之前的值 (t-1
)?
因此,要理解请求...生成一些数据:
set.seed(11)
a = sample(1:10, 10)
数据如下:
3 1 5 9 7 8 6 4 2 10
Need T+1 vs. T-1
:
T = 0 => No computation
T = 1 => 5 - 3 = 2
T = 2 => 9 - 1 = 8
...
T = 9 => 10 - 4 = 6
T = 10 => No computation
随着这一点的建立...
#' Future Difference
#'
#' Obtain the lagged difference between X[t+1+lag] - X[t-1-lag]
#' @param x A \code{vec}
#' @param lag A \code{integer} indicating the lag
#' @return A \code{vec} with differences taken at T+lag v. T-lag
#' @examples
#' set.seed(11)
#' a = sample(1:10, 12)
#' fdiff(a)
fdiff = function(x, lag = 1){
# Number of obs
n = length(x)
# Trigger error to prevent subset
if(n < 2+lag){stop("`x` must be greater than `2+lag`")}
# X_(T+1) - X_(T-1)
x[(2+lag):n] - x[1:(n-lag-1)]
}
调用它a
gives:
fdiff(a)
2 8 2 -1 -1 -4 -4 6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)