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 N valeurs d'une time serie


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Moyenne sur N valeurs d'une time serie
    Bonjour,

    voila je cherche un coup de main d'un codeur, parce que je ne suis pas informaticien.
    Je prépare un mémoire de fin d'année, et j'ai décidé d'utiliser R, j'ai fait beaucoup de recherche mais je bloque sur quelques points.

    En voici un, j'ai une série temporelle (zooreg), qui est composé de 30j et de 24 points par jours (frequency=24), je voudrais avoir pour chaque période de 24h la moyenne et l'écart-type de ces 24 points, le tout dans un tableau avec pour index le jour et les variables moyenne et sd, comme ceci:
    DATE Moyenne Ecart-type
    1(1) 2010-09-01
    2(1) 2010-09-02

    Voici un exemple de mes valeurs. J'ai regardé la fonction aggregate, mais je ne comprend pas son utilisation.

    DATE SEC
    1(1) 2010-09-01 <NA>
    1(2) 2010-09-01 <NA>
    1(3) 2010-09-01 <NA>
    1(4) 2010-09-01 23
    1(5) 2010-09-01 78
    1(6) 2010-09-01 362
    1(7) 2010-09-01 397
    1(8) 2010-09-01 644
    1(9) 2010-09-01 469
    .
    .
    .
    2(1) 2010-09-02 23
    .
    .

    Voila, je serais très reconnaissant si quelqu'un pouvait me donner un coup de main.

    Merci
    Dernière modification par Invité ; 23/10/2010 à 16h48. Motif: orthographe

  2. #2
    Membre chevronné
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut une idée à voir...
    Bonjour,
    je n'ai jamais manipulé de séries chronolgoques sous R, mais voici mon idée (j'utilise, pour exemple, la série presidents incluse dans R):
    1/ Je la transforme en matrice (je ne sais pas si c'est utile mais, au moins, je sais manipuler ):
    2/ Je construis une matrice où chaque colonne correspond à une année (ici, frequency=4):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    V <- seq(1, length(T), 4)
    X <- sapply(V, function(i){T[i], T[i+1], T[i+2], T[i+3]})
    3/ Je calcule les moyennes et écarts-type par colonne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Moy <- apply(X, 2, mean, na.rm=TRUE)
    EcT <- apply(X, 2, sd, na.rm=TRUE)
    Reste à remettre le tout dans un dataframe ou une matrice...
    Ce n'est sans doute pas optimal (il doit y avoir des fonctions pour les séries) mais si ça peut t'ouvrir une piste...
    Bon courage!

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 88
    Par défaut package TTR
    Dans le package TTR, qui est utilisé pour les series financières il y a les moyennes mobiles.
    (fonction EMA)

    Cdt Hydro

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Par défaut
    Salut,

    J’ai aussi une proposition où j’utilise la fonction aggregate que tu propose. Le plus simple avec cette fonction est d’utiliser des séries temporelles.

    Je suppose donc que la colonne avec tes données a été copiée dans une série temporelle (utilise la commende ts() ).

    Voici l’exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ## Création de données artificielles (pour l'exemple ici j'utilise un sinus (mais c'est pas important))
    xx <- seq(from=1,by=0.1,length.out=32*24)
    dd <- ts(sin(xx)+runif(length(xx)))  ## !! il faut utiliser la fonction ts() !!
     
    ## je calcule les 32 moyennes avec 24 points
    print(aggregate (dd,ndeltat=24,FUN=mean))
    Remplace mean par une autre fonction.

Discussions similaires

  1. Filtrer une liste sur les valeurs d'une colonne
    Par julien.63 dans le forum SharePoint
    Réponses: 3
    Dernier message: 13/02/2009, 08h43
  2. Réponses: 16
    Dernier message: 15/08/2008, 11h08
  3. Tri sur les valeurs d'une HashTable avec duplicats
    Par extenbrisadlucem dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 01/08/2008, 11h41
  4. Réponses: 3
    Dernier message: 20/07/2007, 11h33
  5. moyenne sur les valeurs d'un même tableau
    Par DelphLaga dans le forum Langage
    Réponses: 12
    Dernier message: 25/09/2006, 11h35

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