Вы можете попробовать:
library(dplyr)
df %>%
mutate(date2 = as.Date(as.character(date2)),
ten_day_mean = mean(Mean.Temp.c[between(date2, "1963-03-14", "1963-03-23")]))
В этом случае желаемое среднее значение будет заполнять весь столбец.
Или data.table
:
library(data.table)
setDT(df)[between(as.Date(as.character(date2)), "1963-03-14", "1963-03-23"), ten_day_mean := mean(Mean.Temp.c)]
InВ последнем случае вы получите NA
за те дни, которые не относятся к вашему диапазону дат.