comme souvent j'ai une question d'apparence simple sur laquelle je bute depuis plusieurs jours.
J'ai un vecteur (des concentration de chlorophylle), et je souhaite trouver la position à laquelle les valeurs du vecteur passent sous un certain seuil (mettons 50) pour au-moins 2 valeurs consécutives. Pour ajouter de la difficulté, je dois faire cette recherche en partant de la valeur maximum et en lisant le vecteur vers l'arrière.
Pour donner un exemple simplifié, avec le vecteur ci dessous:
Code : Tout sélectionner
c(28, 36, 53, 36, 46, 51, 33, 76, 40)
l'algorithme serait: identifier le max (76), en partant du max, trouver le premier segment de vecteur inférieur à 50 et de longueur >2 (ici 36,46), renvoyer la position du premier élément de ce segment (en partant du max), ici 5.
Identifier la première position sous le seuil en partant du maximum ne me pose pas trop de problème, avec la fonction Position, mais je butte vraiment sur le fait de spécifier un segment de durée minimale.
En réalité la question est un peu plus compliquée puisqu'il s'agit d'un objet zoo, et que je cherche une période de deux semaines sous le seuil (et non deux points), mais je pense qu'en sachant le faire sur un vecteur j'arriverai à m'en sortir avec zoo! (les écologues auront peut-être compris qu'il s'agit d'identifier le début d'un bloom planctonique)
Merci d'avance pour vos solutions éventuelles!