Вот мое прочтение вашего вопроса (с некоторыми примерами данных):
library(dplyr)
library(tidyr)
library(tibble)
data <- tibble(
Interval = round(runif(n = 100, min = 1, max = 1000), 1),
ActivityCode = round(runif(n = 100, min = 0, max = 5),0)
)
data <- data %>%
filter(ActivityCode == 0 | ActivityCode == 5) %>%
mutate(sum = ifelse(ActivityCode == lag(ActivityCode, 1),Interval + lag(Interval, 1), Interval))
Я удаляю все строки, кроме тех, у которых ActivityCode равен 0 и 5. Если есть соседние или последовательные вхождения 0 или 5 суммируются два соседних интервала. С этим выводом:
> print.data.frame(data)
Interval ActivityCode sum
1 87.1 0 NA
2 38.7 0 125.8
3 843.1 5 843.1
4 680.6 5 1523.7
5 151.3 5 831.9
6 37.8 0 37.8
7 539.6 0 577.4
8 978.6 5 978.6
9 140.0 5 1118.6
10 145.1 5 285.1
11 252.5 0 252.5
12 90.0 0 342.5
13 588.8 5 588.8
14 459.1 0 459.1
Это было то, что вы искали?