Я предполагаю, что у вас есть непрерывные данные без пропусков со значениями Flow
для каждой минуты.
В базе R мы можем использовать aggregate
:
df.out <- data.frame(Time = df[seq(0, nrow(df) - 1, 2) + 1, "Time"]);
df.out$mean_2min = aggregate(
df$Flow,
by = list(rep(seq(1, nrow(df) / 2), each = 2)),
FUN = mean)[, 2];
df.out;
# Time mean_2min
#1 00:01:00 3
#2 00:03:00 3
Объяснение: Извлечь только нечетные строки из df
; агрегируйте значения в столбце Flow
через каждые 2 строки и сохраняйте среднее значение в столбце mean_2min
.
Пример данных
df <- data.frame(
Time = c("00:01:00", "00:02:00", "00:03:00", "00:04:00"),
Flow = c(2, 4, 5, 1))