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

Débutez Discussion :

Importer l'heure depuis un fichier txt ou xls


Sujet :

Débutez

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Importer l'heure depuis un fichier txt ou xls
    Bonjour,

    J'ai un problème pour importer l'heure dans ma table SAS. J'ai essayé via un fichier texte (l'heure est dans la première colonne sous un format "hh:mm:ss" et j'ai un nom de fichier dans la deuxième colonne (les deux colonnes étant séparées par un espace).)
    J'utilise le code suivant (qui est loin d'être correct je pense):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DATA sec.heure0108;
    LENGTH NomH$ 64 Heure$ 8;
    INFILE "Z:\...\ciblesIR0108.txt";
    FORMAT NomH$ Heure$;
    RUN;
    J'obtiens effectivement une table mais elle n'affiche qu'une observation sur 9... Et l'heure n'est en tout cas pas au format SAS (elle reste en hh:mm:ss).

    J'ai donc essayé avec un fichier xls. La première colonne est l'heure (format hh:mm:ss) et la deuxième le nom du fichier.
    J'utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LIBNAME heure "Z\...\cibles.xls";
    DATA  sec.heuresec0108;
    	SET heure.xlsdata; 
    RUN;
    LIBNAME heure clear;
    Et là j'ai bien toutes les observations mais l'heure a été convertie en date (il affiche "01JAN1904" pour toutes les heures).

    J'ai fouillé internet, j'ai trouvé des choses mais je ne les comprends malheureusement pas encore..

    Est-ce que vous auriez une idée pour m'aider? Aussi je préfère utiliser le fichier xls si je devais choisir



    Merci beaucoup!

  2. #2
    Membre habitué

    Homme Profil pro
    Consultant Support Client SAS
    Inscrit en
    Mai 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Support Client SAS
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 94
    Points : 180
    Points
    180
    Par défaut
    Bonjour,

    Je pense que vous confondez FORMAT et INFORMAT.

    Le FORMAT est la manière dont SAS va afficher votre donnée. Si vous indiquez l'instrction FORMAT VarHeure hhmmss10.; il est normal que cela s'affiche tel quel.

    En revanche, l'INFORMAT est ce qui permet à SAS de comprendre le formatage des données en entrée et de comprendre comment il doit les convertir en données SAS valides.

    Cordialement,
    Jérémy NOEL

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci pour votre réponse.
    J'ai pu, grace à elle, mieux comprendre les informations de la documentation sur internet mais je n'arrive toujours pas à importer mes données.

    J'ai changé le code pour le fichier texte (la première colonne consiste à une chaine de 22 caractères et la deuxième colonne à une heure en hh:mm:ss, elles sont séparées par une tabulation).

    Mon code est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DATA heure;
    INFILE "...heure.txt";
    INPUT @1 Nom $22
             @2 Heure TIME8.;
    RUN;
    J'obtiens effectivement 2 colonnes dans SAS mais la colonne "Nom" ne contient que la dernière lettre de la chaine de 22 caractères et la colonne "Heure" ne contient que des "."

    Pourriez-vous m'éclairer?

    Merci d'avance!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour,

    Le code comporte des erreurs de syntaxe. Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DATA heure;
    INFILE "\\vmware-host\Shared Folders\Desktop\test.txt";
    INPUT  Nom $ 1-21 @22 dat ANYDTDTE10.;
    format dat DATE9. ;
    RUN;
    Donc attention à l'utilisation des arobases dans votre exemple. @ sert à positionner une variable horizontalement ( import en mode colonne ).

    Attention à l'utilisation des points dans les formats donc $22. et non $22

    Ensuite, il faut utiliser un informat. Comment sas interpréte t-il la date ? j'utilise l'informat ANYDTDTE10.

    Ensuite, les dates étant stockées en tant que différence de jours par rapport au 1er janvier 1960. Il faut l'interpréter d'où l'utilisation du format DATE9.

    J'espère avoir été clair

    Romain
    I always thought that the person who specialized in using just SAS PROCS should
    be known as the SAS Proctologist.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci, c'est déjà plus clair!

    Cependant, je n'arrive toujours pas à afficher mon heure... J'ai trouvé dans la documentation que le format hh:mm:ss se lit avec l'informat TIME. (ou TIME8. mais comme la valeur par défaut de TIME est 8 caractères, c'est pareil) et l'inverse se lit avec la même instruction.

    Le code devrait donc ressembler à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Data Heure..;
    INFILE "...";
    INPUT Nom$ 1-22 Heure TIME.;
    FORMAT Heure TIME.;
    RUN;
    Je pense que mon soucis est que je n'arrive pas à bien positionner la variable "Heure" (parce qu'il ne me sort que des points pour cette variable).
    J'ai essayé de spécifier sa longueur et ou elle se trouvait dans le document:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    INPUT Nom$ 1-22 Heure 24-31 TIME.;
    ...
    Ou encore de spécifier que Heure est dans la deuxième colonne (avec un @2 après Heure), mais rien n'y fait, je garde mes points désespérants...

    Est-ce que l'erreur se situe ailleurs? Comment bien positionner l'Heure? (Sachant que les deux colonnes sont séparées par un simple espace dans un fichier txt).

    Merci beaucoup pour votre aide!

  6. #6
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    bonsoir,

    le mieux serait d'avoir un échantillon des données pour pouvoir répondre plus efficacement.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    C'est pas faux, voilà un échantillon:

    IR_2012-08-01_0017.hdr 10:15:16
    IR_2012-08-01_0095.hdr 10:29:44
    IR_2012-08-01_0121.hdr 10:33:52

    Dans un fichier txt.

    Merci beaucoup!

  8. #8
    Membre éprouvé
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour,

    avec votre jeu de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data test ; 
    infile "\\vmware-host\Shared Folders\Desktop\donne.txt" ;
    input nom $ 1-23 @24 heure time. ; 
    format heure time10. ; 
    run ;
    En fait, vous avez fait juste une petite erreur il faut utiliser 1 - 23 et non 1 - 22 ...

    Cdt
    I always thought that the person who specialized in using just SAS PROCS should
    be known as the SAS Proctologist.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci 10 000x et plus!
    Ca fonctionne enfin!
    Encore merci!

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

Discussions similaires

  1. [XL-2010] Importations depuis plusieurs fichiers .txt
    Par j.klein dans le forum Excel
    Réponses: 11
    Dernier message: 27/03/2015, 12h03
  2. Importer des données depuis un fichier TXT
    Par chfakht dans le forum Administration
    Réponses: 1
    Dernier message: 15/08/2013, 12h26
  3. importation de matrice depuis un fichier txt
    Par ArmandF dans le forum MATLAB
    Réponses: 5
    Dernier message: 21/06/2013, 18h55
  4. Réponses: 2
    Dernier message: 06/03/2012, 10h47
  5. [FLASH MX] Variables depuis un fichier txt
    Par mascagne dans le forum Flash
    Réponses: 4
    Dernier message: 01/03/2006, 17h57

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