У меня есть нижеприведенный фрейм данных
x=c(1:21)
y=c(rep(0,2),rep(3,7),rep(1,12))
z=c(rep(1,17),rep(3,4))
table=data.table(x,y,z)
. В этом мне нужно заменить все 3 в столбце y значением y, где значение z равно 3 (в данном случае это 1).
table[, N := .N, rleid(y)]
table[, y := replace(y, N ==1, NA)]
table[N==1, y := zoo::na.locf(y)][, N := NULL]
Я пытался с этим, но этот заменяет только один случай, не все. Любая помощь приветствуется.