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

SAS Base Discussion :

[PROC] Conversion texte en nombre


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Homme Profil pro
    chargé d'études économiques
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : chargé d'études économiques
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Points : 8
    Points
    8
    Par défaut [PROC] Conversion texte en nombre
    Bonjour,

    J'importe une table où figure le code INSEE d'une commune. Lors de l'importation, SAS transforme cette variable en chiffre, ce qui a pour effet :
    - de supprimer le "0" avant les communes allant de 01 à 09.
    - d'occasionner (a priori, j'ai pas vérifié) des problèmes pour la Corse (commençant par 2A, 2B)

    Voici le code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    proc import datafile="mon_fichier.txt" out=mydata dbms=dlm replace;
    delimiter=';';
    getnames=yes;
    run;
    Comment faire pour que SAS lise les variables en tant que texte et non en numériques ?

    Je précise également que l'INSEE ayant eu la "bonne" idée de mettre une virgule dans les nombre flottants, celle-ci est comprise en tant que symbole de millier par SAS.
    Auriez-vous une solution à ces questions?
    Merci !

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 26
    Points
    26
    Par défaut
    Hello,

    Si tu veux absolument utiliser la proc import, la technique de petit malin est d'ajouter une ligne au début de ton fichier qui va forcer SAS à lire la variable Code Insee en caractère (en mettant "azertyuiop" par exemple).

    La méthode la plus propre est d'utiliser le "data infile" avec les bons informat pour que SAS ne se trompe pas (l'informat Numx. permet de lire les ',' comme séparateur de décimale...il me semble);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    data tab_imp;
       infile "C:\mon_fichier.txt" dlm=";";
       informat code_insee $5 varnb numx.;
       input cntry $ varnb;
    run;
    Tcho.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    chargé d'études économiques
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : chargé d'études économiques
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci

    Entre temps j'ai sollicité un collègue qui m'a également conseillé ça. Le problème c'est que j'avais pas mal de variables. Tant pis, j'ai fait ça manuellement du coup avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data table;
    infile "Monfichier.txt" firstobs=2 delimiter=";" ;
    input COMMUNE $ ARM $ var3...varn /*là j'avais un bon paquet de variables */ IPONDL : commaX17. /*pour résoudre le pb de virgule mal comprise par SAS*/ ;
    run;
    Sujet clos !

  4. #4
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Hello,
    As tu essayé avec l'option "MAGIC" GUESSINGROWS de la proc import?
    N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
    N'oubliez pas de mettre votre message à si la solution donnée résout votre problème

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

Discussions similaires

  1. [XL-2003] Conversion texte vers nombre
    Par Toine-45 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/01/2014, 17h40
  2. [XL-2003] Conversion forme texte en nombre
    Par jackborogar dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/02/2013, 17h29
  3. Conversion groupée de texte en nombre
    Par scrouet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/10/2008, 16h32
  4. Conversion texte en nombre
    Par berapard dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/07/2008, 12h29
  5. Conversion Texte -> Nombre
    Par bart64 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2007, 11h42

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