IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Moyenne sur groupe (coupe)


Sujet :

R

  1. #1
    maf
    maf est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 76
    Points : 43
    Points
    43
    Par défaut Moyenne sur groupe (coupe)
    Bonjour et merci d'avance de votre aide ...

    J'ai un fichier dans lequel j'ai deux colonnes, une première V1 dans laquelle il y a des données relatives au temps. (1 = 00h01, 14 = 00h14, 100=01h00, 547=05h47 etc...).

    Une deuxième, V2, uniquement avec des chiffres (de 0 à 500 environ)

    J'aimerais pouvoir effectuer la moyenne de la colonne V2 par tranche de 15 minutes (relatif à la colonne V1)

    J'ai essayé des combinaisons avec breaks, ave, by ... mais je n'y arrive pas.

    Merci à celle ou celui qui aurait une solution à cela

  2. #2
    Membre éprouvé

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Points : 1 189
    Points
    1 189
    Billets dans le blog
    2
    Par défaut
    Question qui me semble important avant de te données une réponse satisfaisante. Les données de temps (V1) ont elles des écarts constants ou bien il y a des trous dans la chronologie ?

    dans le premier cas tu peux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    data <- rep(1:20,rep(15,20))
    Tes_Donnees$data <- data
    aggregate(Tes_Donnees, by = list(data) , mean)
    Avec Tes_Donnees qui sont triés par ordre croissant.
    Dans se cas, tu as la moyenne de tes données pour chaque quart d'heure.

    Cordialement.

  3. #3
    maf
    maf est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 76
    Points : 43
    Points
    43
    Par défaut re
    Bonjour,

    Il y a effectivement des "trous" car après 59 --> 00h59 on passe directement à 100 --> 01h00.

    Et il y a plusieurs fois les mêmes heures car les relevés sont effectués de manière aléatoire. Et certaines heures ne sont pas présentes.

  4. #4
    Membre éprouvé

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Points : 1 189
    Points
    1 189
    Billets dans le blog
    2
    Par défaut
    1) dédoublonner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    doublon<-duplicated(as.vector(Tes_Donnees$V1))
    data<-data.frame(Tes_Donnees,doublon)
    data<-data[data$doublon==FALSE,]
    2) Merge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rep <- rep(1:20,rep(15,20))
    xy<-merge(rep, data, by = V1,  all.x = TRUE )
    3) Les sommes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aggregate(V1~rep, xy, FUN = mean, na.action = na.omit)
    Voila les trois points à développer. Le code est peu être pas tout à fait exacte. A toi de le modifier en conséquence. Mais je pense que les idées sont là.

    Cordialement.

  5. #5
    Membre confirmé
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    Le problème est plus de convertir des heures (date) en minutes (nombre)... Avez-vous également des dates ou est-que l'ensemble de vos mesures est faite le même jour?

    Un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # Jeu de data bidon
    test <- data.frame(a=rnorm(81), b=c(15:59,500:512,1323:1345))
    # test <- data.frame(a=rnorm(240), b=c(0:59,100:159,500:559,1300:1359))
    # Formatage de b en date
    test$b <- strptime(sprintf("%04d", test$b), format="%H%M")
    # Calcul de la difference avec la date "minimum" en minutes
    test$b.diff <- as.numeric(difftime(test$b, min(test$b), units="min"))
    # Creation d'une variable qui groupe les donnees par tranches de 15 minutes
    test$b.cut <- test$b.diff %/% 15
    # Calcul de la moyenne par groupe
    with(test, tapply(a, b.cut, mean))
    HTH

    Vincent

Discussions similaires

  1. Moyenne de groupe dans un état
    Par robertetgorgette dans le forum Access
    Réponses: 1
    Dernier message: 21/07/2006, 20h50
  2. Comment calculer des moyennes sur des nombres positifs
    Par robertetgorgette dans le forum Access
    Réponses: 2
    Dernier message: 20/07/2006, 14h05
  3. Faire une bete moyenne sur un SUM
    Par ePoX dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/02/2006, 12h13
  4. [C.R .8.5] doublons de référence sur groupes différents
    Par leuke dans le forum SAP Crystal Reports
    Réponses: 24
    Dernier message: 14/11/2005, 11h15
  5. ordre correct sur group ?
    Par Force59 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 02/04/2004, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo