Учитывая кадр данных, как это:Вычислить среднее из диапазона строк
A <- c(1,2,3,4,NA,6,7,8,9,10,11,12,13,14,15)
B <- c(NA,NA,NA,20,NA,NA,NA,15,NA,NA,NA,NA,11,NA,9)
DF <- data.frame(A, B)
Я хотел бы вычислить среднее для диапазона значений в колонке А, на основе значения в столбце B. В частности, каждый раз, когда в столбце B есть значение, отличное от NA, я хотел бы рассчитать среднее значение диапазона строк 2 выше и 2 ниже в столбце A.
Например, первое значение, отличное от NA в столбце B 20. Поэтому я хотел бы вычислить среднее из двух строк выше (2, 3), два ряда ниже (NA, 6) и соседнюю строку (4). Итак:
mean(2,3,4,NA,6)
Аналогично, следующий не-NA значение в строке B 15. Какой бы
mean(6,7,8,9,10)
Таким образом, конечный результат для всего кадра данных будет новый столбец С
DF$C <- c(NA,NA,NA,3.75,NA,NA,NA,8,NA,NA,NA,NA,13,NA,14)