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 :

Lecture fichier et graphique en fonction du temps [Débutant(e)]


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut Lecture fichier et graphique en fonction du temps
    Bonjour

    je débute avec R et je tente de tracer un graphique avec des courbes correspondant a différents champs définis dans un fichier texte en fonction du premier champ "date".

    j'arrive à importer le fichier texte joint en faisant ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dataset <- read.table("C:/b.txt", header = TRUE, sep=";",na.string="NA",dec=".")
    mais je n'arrive pas à tracer un quelconque graph qui a en abscisse le temps
    Il me semble avoir compris que l'on pouvait transformer les données en "time series" avec la fonction ts mais je n'arrive pas à le faire, je ne comprends pas l'aide et la syntaxe.
    Peut être que ma date au format dd/mm/aaaa hh/nn:ss n'est pas gérée ?

    merci par avance pour votre aiguillage
    Fichiers attachés Fichiers attachés
    • Type de fichier : txt b.txt (103 octets, 107 affichages)

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 74
    Par défaut
    Y a un problème avec le fichier texte que tu as envoyé, je l'ai un peu modifié (les dates sont inconsistantes).
    Pour transformer tes données en série temporelles tu as plusieurs classes disponibles sous R. En général quand ta résolution temporelle va jusqu'au niveau des secondes, il faut utiliser les packages zoo, xts ou timeDate.
    Voici un exemple avec le package zoo (xts aussi n'est pas mal).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    require(zoo)
    Data <- read.csv2("b.txt", as.is = TRUE)
    Data
     
    date                var1 var2 var3
    2011-10-21 08:00:00    1    2    3
    2011-10-21 08:01:01    2    3    4
    2011-10-21 08:02:02    2    4    6
     
    Datats <- zoo(Data[,-1], order.by = strptime(Data[,1], "%d/%m/%Y %H:%M:%S"))
    class(Datats)
     "zoo"
     
    Datats
     
                        var1 var2 var3
    2011-10-21 08:00:00    1    2    3
    2011-10-21 08:01:01    2    3    4
    2011-10-21 08:02:02    2    4    6
     
    plot(Datats)

  3. #3
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Merci pour votre exemple

    mais je n'arrive pas à le mettre en œuvre

    j'ai ce message
    Message d'avis :
    In zoo(Data[, -1], order.by = strptime(Data[, 1], "%d/%m/%Y %H:%M:%S")) :
    some methods for “zoo” objects do not work if the index entries in ‘order.by’ are not unique
    du coup il n'y a plus de dates dans Datats

    Mais il doit y avoir un soucis dans mon fichier modifié parce que après lecture par csv2 j'ai toujours un titre à la colonne des dates ; pas dans votre exemple...
    X var1 var2 var3
    1 2011/10/21 8:00:00 1 2 3
    2 2011/10/21 8:01:00 2 3 4
    3 2011/10/21 8:02:00 2 4 6
    Ci joint mon fichier modifié

    merci
    Fichiers attachés Fichiers attachés
    • Type de fichier : txt b.txt (93 octets, 142 affichages)

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 74
    Par défaut
    C'est ma faute je me suis trompé en faisant un copier collé, j'ai corrigé (revoir mon post, j'ai fait un edit) en rajoutant le nom de la première colonne (date).
    Donc il faut rajouter cette colonne dans ton fichier texte (j'ai vu que tu l'as enlevées).
    Si ça ne marche pas fait moi signe

  5. #5
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    RE

    J'ai toujours les dates qui ne sont pas prises en compte...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    > require(zoo)
    > Data <- read.csv2("C:/R/b.txt", as.is = TRUE)
    Message d'avis :
    In read.table(file = file, header = header, sep = sep, quote = quote,  :
      readTableHeader a trouvé une ligne finale incomplète dans 'C:/R/b.txt'
    > Data
                    date var1 var2 var3
    1 2011-10-21 8:00:00    1    2    3
    2 2011-10-21 8:01:00    2    3    4
    3 2011-10-21 8:02:00    2    4    6
    > Datats <- zoo(Data[,-1], order.by = strptime(Data[,1], "%d/%m/%Y %H:%M:%S"))
    Message d'avis :
    In zoo(Data[, -1], order.by = strptime(Data[, 1], "%d/%m/%Y %H:%M:%S")) :
      some methods for “zoo” objects do not work if the index entries inorder.by’ are not unique
    > class(Datats)
    [1] "zoo"
    > Datats
         var1 var2 var3
    <NA>    1    2    3
    <NA>    2    3    4
    <NA>    2    4    6
    >
    Fichiers attachés Fichiers attachés
    • Type de fichier : txt b.txt (97 octets, 113 affichages)

  6. #6
    Membre éprouvé
    Inscrit en
    Mai 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 74
    Par défaut
    Ça ne devait pas prendre autant de temps ce problème.
    Tu as changé le format de la colonne date entre le premier fichier que tu m'as envoyé et les derniers.
    Au début c'était : dd/mm/yy HH:MM:SS et les fichiers suivants yy-mm-dd HH:MM:SS

    Hier j'étais fatigué donc j'avais pas fait gaffe. Cette fois ci pour éviter toutes erreurs, j'ai enregistré ton fichier dans mon dropbox comme ça je suis sur que si le code marche chez moi, ça marche aussi chez toi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    require(RCurl)
    require(zoo)
    url <- getURL("https://dl.dropbox.com/u/8750577/b.txt")
    Data <- read.csv2(textConnection(url), as.is = TRUE)
     
    Datats <- zoo(x = Data[,-1], order.by = strptime(Data[, 1], "%Y-%m-%d %H:%M:%S"))
     
    plot(Datats)
    Si tu changes le format des dates, regarde l'aide de la fonction strptime pour adapter selon le nouveau format

  7. #7
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Re

    J'avais modifié le fichier pour tenter d'obtenir la même chose que vous ici
    > Data
    date var1 var2 var3
    1 2011-10-21 8:00:00 1 2 3
    2 2011-10-21 8:01:00 2 3 4
    3 2011-10-21 8:02:00 2 4 6

    La j'ai la connexion url qui ne fonctionne pas, ca me met
    Erreur : impossible de trouver la fonction "getURL"

    mais ce n'est pas grave, j'ai vaincu quand même
    Je n'ai pas le graph tel que je le voulais mais je suis sur les rails à priori

    merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tk Faire un graphique en fonction du temps
    Par Andr42 dans le forum Interfaces Graphiques
    Réponses: 9
    Dernier message: 25/03/2015, 10h49
  2. lecture fichier txt via fonction FTP ascii
    Par kitty2006 dans le forum SAP
    Réponses: 1
    Dernier message: 30/03/2010, 10h07
  3. Création/lecture fichier TEMP, XP vs Vista/7
    Par Razor82 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 16/02/2010, 23h06
  4. Réponses: 31
    Dernier message: 06/02/2010, 10h50
  5. Control Graphique en fonction du temps
    Par KoRiGaN44 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 27/04/2009, 15h31

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