Настройка
x <- c(1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
Существует два способа:
1) embed .Используя embed
, найдите первую строку 1 следующим образом:
> which(rowSums(embed(x, 8)) == 8)[1] + 8 - 1
[1] 18
2) rollapply .Немного менее сложно с пакетом зоопарка.При этом мы берем скользящую сумму последних 8 значений и затем находим время, когда оно сначала становится 8:
> library(zoo)
> r <- rollapply(zoo(x), 8, sum, align = "right")
> time(r[r == 8][1])
[1] 18