Here are two ways to make the calculation based on the julianDays column. Notice that it differs from the calculation based on April 1 - April 5 in 2008 because the leap day shifts the julianDays value in April. Does this solve your problem?
library(tidyverse)
#> Warning: package 'tibble' was built under R version 4.1.2
montbrun <- structure(list(Year = c(2005, 2005, 2005, 2005, 2005, 2006, 2006,
2006, 2006, 2006, 2007, 2007, 2007, 2007, 2007, 2008, 2008, 2008,
2008, 2008),
Month = c(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4),
Day = c(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5,
1, 2, 3, 4, 5),
DateTime = structure(c(1112313600, 1112400000,
1112486400, 1112572800, 1112659200, 1143849600, 1143936000,
1144022400, 1144108800, 1144195200, 1175385600, 1175472000,
1175558400, 1175644800, 1175731200, 1207008000, 1207094400,
1207180800, 1207267200, 1207353600), class = c("POSIXct", "POSIXt"),tzone = "UTC"),
julianDays = c("091", "092", "093", "094", "095", "091",
"092", "093", "094", "095", "091", "092", "093", "094", "095",
"092", "093", "094", "095", "096"),
minTemp = c(1, -5, -2,
-2, -6, 1, -9, 0, -7.5, -5, -7, 0.5, -2.5, -1.5, -10, -8,
-17.5, -8, -6.5, -5)),
row.names = c(NA, -20L), class = c("tbl_df", "tbl", "data.frame"))
montbrun %>%
group_by(Year) %>%
filter(Month == 4) %>%
filter(Day >= 1 & Day <= 5) %>%
summarise(mintemp = mean(minTemp))
#> # A tibble: 4 x 2
#> Year mintemp
#> <dbl> <dbl>
#> 1 2005 -2.8
#> 2 2006 -4.1
#> 3 2007 -4.1
#> 4 2008 -9
montbrun %>%
group_by(Year) %>%
filter(julianDays >="091", julianDays <= "095") %>%
summarise(mintemp = mean(minTemp))
#> # A tibble: 4 x 2
#> Year mintemp
#> <dbl> <dbl>
#> 1 2005 -2.8
#> 2 2006 -4.1
#> 3 2007 -4.1
#> 4 2008 -10
montbrun %>%
mutate(julianDays = as.numeric(julianDays)) %>%
group_by(Year) %>%
filter(julianDays >= 91, julianDays <= 95) %>%
summarise(mintemp = mean(minTemp))
#> # A tibble: 4 x 2
#> Year mintemp
#> <dbl> <dbl>
#> 1 2005 -2.8
#> 2 2006 -4.1
#> 3 2007 -4.1
#> 4 2008 -10
Created on 2022-07-24 by the reprex package (v2.0.1)