Moyenne glissante et date associée

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Vincent Fister
Messages : 3
Enregistré le : 17 Mar 2023, 07:09

Moyenne glissante et date associée

Messagepar Vincent Fister » 29 Mar 2023, 06:52

Bonjour,
Le script que j'utilise (lfstat) me permet de traiter des données hydrologiques mais oblige à structurer via une fonction (lfobj) des données pour obtenir un dataframe initial dans cette configuration :

Code : Tout sélectionner

day;month;year;flow;baseflow
29;8;1980;3068;2750
30;8;1980;2345;2084
31;8;1980;4353;3857
1;9;1980;5657;5222


A l'aide d'une fonction du script (MAM), je calcule sur ce jeu de donnée des moyennes glissantes annuelles (sur 10 jours) afin d'extraire la valeur minimum par an.

Code : Tout sélectionner

MAM <- function(lfobj, n = 10, year = "any", breakdays = NULL,
                yearly = FALSE){
  lfcheck(lfobj)

  if(!is.null(breakdays)){
    if(!yearly){
      return(aggregate(MAn ~ seasonname,
                       data = MAannual(lfobj = lfobj,n = n,
                                       breakdays = breakdays, year = year),
                       FUN = mean))
    }else{
      return(MAannual(lfobj, n, breakdays, year = year))
    }
  }

  if(yearly){
    MAannual(lfobj, n, year = year)
  }else{
    mean(MAannual(lfobj, n, year = year)$MAn)
  }
}


Le résultat est de ce type :

Code : Tout sélectionner

"year";MAM"
"1980";2248.4
"1981";1607.9
"1982";2819.2
"1983";1219.4


Pas de problème, ça marche mais j'aurais aimé extraire la date associée à valeur minimale (MAM10) et pas uniquement l'année comme c'est le cas. En somme rajouter pour chaque année deux colonnes à ce tableau de résultat, le jour et le mois associé au calcul de cette valeur (qui pourrait être la date de début ou la date de fin mais l'idée ça serait de repérer quand dans l'année la valeur moyenne minimale a été extraite). Une idée ?

Ma question est peut-être tordue et sa lecture fastidieuse, je m'en excuse. Mais je teste et j'essaie d'apprendre un peu à me sortir des tableurs...
D'avance merci et bonne journée

Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité