Трудно сказать без примера набора данных, но попробуйте следующее.
Определите вектор разрыва, который включает в себя ноль и идет вверх или вниз оттуда.
brk_time3 <- with(data2, unique(c(rev(seq(0, min(time3), by = -20)), seq(0, max(time3), by = 20))))
Теперь этопростой group_by/summarize
.
data3 <- data2 %>%
group_by(time3 = cut(time3, breaks = brk_time3, include.lowest = TRUE), Subject, condition) %>%
summarize(mean.reSYS = mean(reSYS))