时间序列的滞后函数
Lag function for time series
我有一个关于滞后函数的问题,我无法在 R 中解决。我在数据帧 'V3' 中有一个变量,它是一个非常大的数据文件的时间序列。 'resultV4' 是我想要完成的(参见代码片段)。
- 我希望我的resultV4在第一行是-1,基于V3。
- 在V3的第二行有一个零,所以我希望resultV4的值为-1(第一行的值)
- 在V3的第3行有一个零,所以我希望resultV4的值为-1(第1行的值)
当V3的值发生变化时,在本例中为第6行的1,我希望resultV4为1。第7行是另一个0,所以我希望这是V3中第6行的值, 即 1. 依此类推..
V3<-c(-1,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,-1,0,0)
resultV4<-c(-1,-1,-1,-1,-1,1,1,1,1,1,-1,-1,-1)
df<-cbind(V3,resultV4)
提前感谢您的任何建议。
干杯,
PCdL
resultV4 <- V3
for(i in seq_along(V3)) { if(resultV4[i] == 0) resultV4[i] = resultV4[i-1] }
resultV4
[1] -1 -1 -1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1
您可以使用包 zoo
中的 na.locf
。
library(zoo)
V3 <- c(-1,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,-1,0,0)
V3_adj <- V3
用 NA 替换 0
my_zero <- which(V3 == 0)
V3_adj[my_zero] <- NA
继续上次观察
resultV4 <- na.locf(V3_adj)
cbind(V3, V3_adj, resultV4)
结果:
V3 V3_adj resultV4
[1,] -1 -1 -1
[2,] 0 NA -1
[3,] 0 NA -1
[4,] 0 NA -1
[5,] 0 NA -1
[6,] 1 1 1
[7,] 0 NA 1
[8,] 0 NA 1
[9,] 0 NA 1
[10,] 0 NA 1
[11,] -1 -1 -1
[12,] 0 NA -1
[13,] 0 NA -1
[14,] 0 NA -1
[15,] 0 NA -1
[16,] -1 -1 -1
[17,] 0 NA -1
[18,] 0 NA -1
我有一个关于滞后函数的问题,我无法在 R 中解决。我在数据帧 'V3' 中有一个变量,它是一个非常大的数据文件的时间序列。 'resultV4' 是我想要完成的(参见代码片段)。
- 我希望我的resultV4在第一行是-1,基于V3。
- 在V3的第二行有一个零,所以我希望resultV4的值为-1(第一行的值)
- 在V3的第3行有一个零,所以我希望resultV4的值为-1(第1行的值)
当V3的值发生变化时,在本例中为第6行的1,我希望resultV4为1。第7行是另一个0,所以我希望这是V3中第6行的值, 即 1. 依此类推..
V3<-c(-1,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,-1,0,0)
resultV4<-c(-1,-1,-1,-1,-1,1,1,1,1,1,-1,-1,-1)
df<-cbind(V3,resultV4)
提前感谢您的任何建议。
干杯,
PCdL
resultV4 <- V3
for(i in seq_along(V3)) { if(resultV4[i] == 0) resultV4[i] = resultV4[i-1] }
resultV4
[1] -1 -1 -1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1
您可以使用包 zoo
中的 na.locf
。
library(zoo)
V3 <- c(-1,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,-1,0,0)
V3_adj <- V3
用 NA 替换 0
my_zero <- which(V3 == 0)
V3_adj[my_zero] <- NA
继续上次观察
resultV4 <- na.locf(V3_adj)
cbind(V3, V3_adj, resultV4)
结果:
V3 V3_adj resultV4
[1,] -1 -1 -1
[2,] 0 NA -1
[3,] 0 NA -1
[4,] 0 NA -1
[5,] 0 NA -1
[6,] 1 1 1
[7,] 0 NA 1
[8,] 0 NA 1
[9,] 0 NA 1
[10,] 0 NA 1
[11,] -1 -1 -1
[12,] 0 NA -1
[13,] 0 NA -1
[14,] 0 NA -1
[15,] 0 NA -1
[16,] -1 -1 -1
[17,] 0 NA -1
[18,] 0 NA -1