J'ai aimé la solution de @mikeck pour ne pas avoir à convertir mes dataframes dans les deux sens à partir d'un objet zoo, mais je voulais aussi utiliser une fenêtre plus large que 1. Mais je voulais aussi utiliser une fenêtre plus large que 1. Leur solution ne prend en compte que la xème valeur éloignée de la valeur d'intérêt, et non les valeurs situées à x distance. Voici ce que j'ai trouvé. Il vous faudrait ajouter une ligne de retard/plomb supplémentaire pour chaque valeur éloignée de la valeur d'intérêt que vous souhaitez examiner.
x <- data.frame(AIC = c(98, 97, 96, 97, 98, 99, 98, 98, 97, 96, 95, 94, 93, 92, 93, 94, 95, 96, 95, 94, 93, 92, 91, 90, 89, 88))
x <- x %>%
mutate(local.minima = if_else(lag(AIC) > AIC & lead(AIC) > AIC &
lag(AIC, 2) > AIC & lead(AIC, 2) > AIC &
lag(AIC, 3) > AIC & lead(AIC, 3) > AIC, TRUE, FALSE),
local.minima = if_else(is.na(local.minima), TRUE, local.minima))