如何在 R 中的滞后运算中使用向量
How to use a vector in lag operation in R
在 R 中,我们如何在滞后函数中使用向量而不是元素。即对于 Lag(x,k=2);我想使用向量而不是 2,因为我想将每一行滞后一个不同的值。所以一行可能有 3 的滞后,而 1 可能是 0 等
示例:
a #lags d
1 0 1
2 1 1
4 2 1
3 0 3
1 1 3
我认为您可能需要为此任务编写自己的函数。我写了一个,我认为这将是你需要的,或者可能会为你指明正确的方向:
x1 <- c(75,98,65,45,78,94,123,54) #a fake data set for us to lag
y1 <- c(2,3,1,4,1,2,3,5) #vector of values to lag by
#the function below takes the data, x1, and lags it by y1
dynlag <- function(x,y) {
a1 <- x[length(x)-y]
return(a1)
}
#test out the function
dynlag(x1,y1)
希望这对您有所帮助。 :)
这里有一个指数演算的解法:
D <- read.table(header=TRUE, text=
'a lags d
1 0 1
2 1 1
4 2 1
3 0 3
1 1 3')
i <- seq(length(D$a))
erg <- D$a[i - D$lags]
all.equal(erg, D$d)
在 R 中,我们如何在滞后函数中使用向量而不是元素。即对于 Lag(x,k=2);我想使用向量而不是 2,因为我想将每一行滞后一个不同的值。所以一行可能有 3 的滞后,而 1 可能是 0 等
示例:
a #lags d
1 0 1
2 1 1
4 2 1
3 0 3
1 1 3
我认为您可能需要为此任务编写自己的函数。我写了一个,我认为这将是你需要的,或者可能会为你指明正确的方向:
x1 <- c(75,98,65,45,78,94,123,54) #a fake data set for us to lag
y1 <- c(2,3,1,4,1,2,3,5) #vector of values to lag by
#the function below takes the data, x1, and lags it by y1
dynlag <- function(x,y) {
a1 <- x[length(x)-y]
return(a1)
}
#test out the function
dynlag(x1,y1)
希望这对您有所帮助。 :)
这里有一个指数演算的解法:
D <- read.table(header=TRUE, text=
'a lags d
1 0 1
2 1 1
4 2 1
3 0 3
1 1 3')
i <- seq(length(D$a))
erg <- D$a[i - D$lags]
all.equal(erg, D$d)