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 :

Convertir une variable numérique en caractère


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 26
    Points : 26
    Points
    26
    Par défaut Convertir une variable numérique en caractère
    Bonjour cher réseau,
    j'ai importé un fichier excel sur sas, mais sas m'a défini des variables qui sont qualitatives sous forme numérique.
    J'ai essayé de les convertir via ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DATA time;
    set time1;
    lact=put(rang,2$.);
    drop lact;
    rename rang=lact;
    run;
    mais lorsque je fais proc contents je trouve que la variable rang reste numérique, sachant que le journal m'affiche :
    warning: variable rang has already been defined as numeric.
    Prière de m'aider.

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Convertir une variable numérique en caractère
    Bonjour,

    • Avec la fonction put :

    La fonction put applique un format à une variable et convertit le résultat au format texte. Il faut donc que format soit compatible avec la variable d'origine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    proc format;
      value ouinon
        0 = "Non"
        1 = "Oui";
     
      value $rvb
        "R" = "Rouge"
        "V" = "Vert"
        "B" = "Bleu";
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    data test;
      V1=0;
      V2=strip(put(V1,8.));
      V3=put(V1,ddmmyy10.);
      V4=put(V1,ouinon.);
      V5="B";
      V6=put(V5,$rvb.);
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    V1    V2        V3        V4     V5     V6
     0    0     01/01/1960    Non    B     Bleu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
           Procédure CONTENTS
     
    Variables par ordre de création
     
    #    Variable    Type     Long.
     
    1    V1          Num.         8
    2    V2          Texte        8
    3    V3          Texte       10
    4    V4          Texte        3
    5    V5          Texte        1
    6    V6          Texte        5
    • Avec une simple affectation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data test;
      V1=0;
      length V2 $8.;
      V2=V1;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).
          4:6
    NOTE: The data set WORK.TEST has 1 observations and 2 variables.
    NOTE: DATA statement used (Total process time):
          real time           0.03 secondes
          cpu time            0.01 secondes
    Cordialement,

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Merci pour votre aide, mais cela me crée une table vide avec les variables sans observations.
    comment je peux importer les données en utilisant la proc import dans ce data?
    En plus je me demande s'il y a moyen de forcer SAS à garder le même format de variable d'Excel lors de l’utilisation d'une PROC IMPORT?
    cordialement.

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Convertir une variable numérique en caractère
    Bonjour,

    Citation Envoyé par Jihane1996 Voir le message
    Merci pour votre aide, mais cela me crée une table vide avec les variables sans observations.
    Qu'avez-vous fait exactement ?

    Dans mon exemple j'ai fait une seule étape data mais il ne faut pas oublier l'instruction set pour travailler sur une table existante.

    Pouvez-vous copier-coller la log avec le code et les messages si ça ne marche toujours pas ?

    En plus je me demande s'il y a moyen de forcer SAS à garder le même format de variable d'Excel lors de l’utilisation d'une PROC IMPORT?
    Je ne comprends pas très bien votre question. Sans doute votre variable est-elle reconnue comme numérique dans Excel aussi.

    Ci-joint un petit fichier Excel avec une variable numérique et une variable caractères.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    proc import out=test 
                datafile="d:\temp\test.xlsx"  
                dbms=excel replace;
         getnames=yes;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                           Procédure CONTENTS
     
                     Variables par ordre de création
     
    #    Variable    Type     Long.    Format    Informat    Libellé
     
    1    Vnum        Num.         8                          Vnum
    2    Vchar       Texte        1    $1.       $1.         Vchar
    Cordialement,
    Fichiers attachés Fichiers attachés

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Merci pour vos explication, ça marche très bien.

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

Discussions similaires

  1. Convertir les variables numérique en caractère
    Par M.caloj dans le forum SAS Base
    Réponses: 0
    Dernier message: 09/07/2018, 15h36
  2. Réponses: 3
    Dernier message: 21/08/2014, 12h13
  3. [DATA] Convertir une variable caractère en numérique
    Par bibicheDZ dans le forum SAS Base
    Réponses: 5
    Dernier message: 22/04/2014, 10h34
  4. Convertir une variable caractère en variable date
    Par benbrisefer dans le forum SAS Base
    Réponses: 2
    Dernier message: 25/10/2013, 11h39
  5. Convertir une variable en chaine de caractères
    Par Sytchev3 dans le forum Langage
    Réponses: 2
    Dernier message: 03/10/2007, 11h48

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