utilisation de la fonction algA du package Metrology

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

Didier Bozonnet
Messages : 60
Enregistré le : 04 Fév 2012, 12:35

utilisation de la fonction algA du package Metrology

Messagepar Didier Bozonnet » 21 Aoû 2023, 07:52

Bonjour
Métrologue je traite des données de relevé journalier de température d'une enceinte pour réaliser une surveillance; extraction de la période 'nuit' J'utilise la fonction algA qui calcule moyenne robuste (mu) et ecart-type robuste (s) selon ISO 5725-5 (norme d'estimation de justesse et fidélité). Cette fonction utilisée seule renvoie une liste (class list) avec mu et s (les estimateurs que je cherche à évaluer par jour)

Code : Tout sélectionner

 ini1<- ini %>%
          group_by(date)%>%
          reframe(m=mean(temp,na.rm=TRUE),ec=sqrt(var(temp,na.rm=TRUE)),algA(temp)) 

Les données de algA (mu & s) s'affiche par ligne (1 ligne devient 2 lignes avec mu et s)
J'utilise la fonction 'unlist' pour passer en class 'num'; les lignes sont alors dédoublées pour permettre l'affichage de mu et s

Code : Tout sélectionner

ini2<- ini %>%
  group_by(date)%>%
  reframe(m=mean(temp,na.rm=TRUE),ec=sqrt(var(temp,na.rm=TRUE)),robust= unlist(algA(temp)))


J'ai toujours 2 lignes dédoublées avec mu et s

Ce que je souhaite c'est avoir les valeurs de mu et s en colonne par date. Je seche totalement sur le coup.

Comme je ne sais pas mettre en copie les Data résultants cela n'est pas forcément très clair pour vous Je reste à votre dispo pour vous apporter des précisions.
Bonne journée à vous
Didier
Par avance merci
Didier Bozonnet

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: utilisation de la fonction algA du package Metrology

Messagepar Logez Maxime » 21 Aoû 2023, 08:30

Bonjour,

Avec unnest de tidyr par exemple :

Code : Tout sélectionner

ini2<- ini %>%
  group_by(date)%>%
  reframe(m=mean(temp,na.rm=TRUE),ec=sd(temp,na.rm=TRUE),robust= as.data.frame(algA(temp))) %>%
  unnest(robust)
 
  # avec spread
  dta %>%
    group_by(z) %>%
    reframe(m = mean(cm), ec = sd(cm), robust = unlist(algA(cm))) %>%
    mutate(var = rep(c("mr", "sr"), n()/2)) %>%
    spread(var, robust)

Cordialement,
Maxime

Didier Bozonnet
Messages : 60
Enregistré le : 04 Fév 2012, 12:35

Re: utilisation de la fonction algA du package Metrology

Messagepar Didier Bozonnet » 21 Aoû 2023, 09:06

Merci merci beaucoup vous me sauvez ; c'est tout bête mais il y a tellement de fonction !!

Avec unnest() çà repond pile poil à ce que je veux; j'avais pourtant vu cette fonction mais l'astuce était donc de transformer la liste en data.frame

bonne journée à vous
didier
Par avance merci
Didier Bozonnet

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: utilisation de la fonction algA du package Metrology

Messagepar Logez Maxime » 21 Aoû 2023, 09:21

re,

Peut-être que le plus simple dans un cas comme celui-ci était de définir une fonction qui fasse exactement ce que tu cherchais :

Code : Tout sélectionner

f <- function(x) {
  mn <- mean(x, na.rm = TRUE)
  s <- sd(x, na.rm = TRUE)
  al <- algA(x, na.rm = TRUE)
  res <- data.frame(mn = mn, s = s, mur = al$mu, sr = al$s)
  res
}

dta %>%
    group_by(z) %>%
    reframe(f(temp))
Cordialement,
Maxime

Didier Bozonnet
Messages : 60
Enregistré le : 04 Fév 2012, 12:35

Re: utilisation de la fonction algA du package Metrology

Messagepar Didier Bozonnet » 07 Nov 2023, 09:26

merci Maxime pour votre aide
Par avance merci
Didier Bozonnet


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Gabriel Terraz et 1 invité