для установки NA
в соответствующих местах, вы снова можете использовать diff()
и однострочный трюк:
> tt$ivi[c(1,diff(tt$customer_id)) != 0] <- NA
объяснение
давайте возьмем несколькоvector x
x <- c(1,1,1,1,2,2,2,4,4,4,5,3,3,3)
мы хотим извлечь такие индексы, которые начинаются с нового номера, т.е. (0,5,8,11,12).Для этого можно использовать diff()
.
y <- c(1,diff(x))
# y = 1 0 0 0 1 0 0 2 0 0 1 -2 0 0
и взять те индексы, которые не равны нулю:
x[y!=0] <- NA