R回望几天,如果旧值存在,则分配新值

R回望几天,如果旧值存在,则分配新值,r,R,我有两个时间序列向量,如下所示- a <- c(1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0) b <- c(1, 0, 1, 0) 谢谢 我们可以创建一个具有lag library(dplyr) f1 <- function(vec) replace(vec, lag(vec, 6) == 1, 2) 我们可以创建一个具有lag library(dplyr) f1 <- function(vec) replace(vec, lag(vec,

我有两个时间序列向量,如下所示-

a <- c(1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0)
b <- c(1, 0, 1, 0)

谢谢

我们可以创建一个具有
lag

library(dplyr)
f1 <- function(vec) replace(vec, lag(vec, 6) == 1, 2)

我们可以创建一个具有
lag

library(dplyr)
f1 <- function(vec) replace(vec, lag(vec, 6) == 1, 2)

通过定义用户函数
f

f <- function(v) replace(v, (ind <- which(v == 1) + 6)[ind <= length(v)], 2)

通过定义用户函数
f

f <- function(v) replace(v, (ind <- which(v == 1) + 6)[ind <= length(v)], 2)
> f(a)
 [1] 1 0 0 0 1 0 2 1 1 0 2 0

> f(b)
[1] 1 0 1 0