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 :

Variable has been defined as both character and numeric


Sujet :

SAS Base

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 76
    Points
    76
    Par défaut Variable has been defined as both character and numeric
    Bonjour,
    Une collègue de travail est partie en congé et m'a laissé le code ci-dessous qui à priori ne plantait pas.
    EMP_NBH et EMP_SAL de type caractères ont été supprimés. EMP_NBH_num et EMP_SAL_num sont bien de type numériques et ont été renommés en EMP_NBH et EMP_SAL

    *avant concatenation, vérifier s'il existent les variables sources d'anomalies (même nom mais différent format par exemple);
    proc contents data=bas_sortant_anter_15 position;
    run;
    proc contents data=ficb16_b position;
    run;
    *oui, ici c'est le cas entre EMP_NBH EMP_SAL;
    *donc il faut reformater les deux variables pour qu'elles collent aux variables de la base concaténée;
    data ficb16_b;
    set ficb16_b;
    EMP_NBH_num=input(EMP_NBH,8.);
    EMP_SAL_num=input(EMP_SAL,8.);
    run;
    *vérification;
    proc print data=ficb16_b (obs=50);
    var EMP_NBH EMP_NBH_num EMP_SAL EMP_SAL_num;
    where ksiq="3";
    run;

    data ficb16_b;
    set ficb16_b;
    drop EMP_NBH
    EMP_SAL;
    rename EMP_NBH_num=EMP_NBH
    EMP_SAL_num=EMP_SAL;
    run;

    *Mise à jour de la base standard en rajoutant au fichier agrégé de l'année antérieure le fichier de la nouvelle année;
    * 2:concaténation des fichiers;
    data bas_sortant_anter;
    set bas_sortant_anter_15 ficb16_a;
    run;

    Au moment d'exécuter, j'ai le message :
    1910 data bas_sortant_anter;
    1911 set bas_sortant_anter_15 ficb16_a;
    ERROR: Variable EMP_NBH has been defined as both character and numeric.
    ERROR: Variable EMP_SAL has been defined as both character and numeric.
    1912 run;

    Voici ce que donnent les proc contents avant ...:
    Pour : WORK.BAS_SORTANT_ANTER_15
    12 EMP_NBH Num. 8 BEST12. F12.
    13 EMP_SAL Num. 8 BEST12. F12.
    Pour : FICB16_B
    13 EMP_NBH Texte 2
    14 EMP_SAL Texte 5

    ... et après :
    Pour : WORK.BAS_SORTANT_ANTER_15
    12 EMP_NBH Num. 8 BEST12. F12.
    13 EMP_SAL Num. 8 BEST12. F12
    Pour : FICB16_B
    EMP_NBH Num. 8
    45 EMP_SAL Num. 8

    La proc print montre bien que les nouvelles variables sont calés à droite (les anciennes à gauche)
    Et en faisant clic droit sur le nom des colonnes (attribut des colonnes), je vois que le type est bien Numeric dans les 2 cas... Je ne vois pas pourquoi SAS dit que ces 2 variables sont de type caractère ?
    J'ai le meme message d'erreur en faisant :
    data ficb16_b;
    set ficb16_b;
    drop EMP_NBH EMP_SAL;
    EMP_NBH=EMP_NBH_num;
    EMP_SAL=EMP_SAL_num;
    run;
    Merci d'avance.

  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 Variable has been defined as both character and numeric
    Bonjour,

    Vous avez modifié le fichier ficb16_b mais ajouté le fichier ficb16_a.

    Cordialement,

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par mgdondon Voir le message
    Bonjour,

    Vous avez modifié la fichier ficb16_b mais ajouté le fichier ficb16_a.

    Cordialement,
    Merci (c'est moi le fautif... qui avait modifié le nom du fichier)

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 05/12/2011, 15h09
  2. Warning: Call-time pass-by-reference has been deprecated
    Par Poseidon62 dans le forum Langage
    Réponses: 8
    Dernier message: 16/10/2011, 17h03
  3. Réponses: 4
    Dernier message: 28/12/2009, 11h36
  4. Réponses: 6
    Dernier message: 01/10/2008, 12h08
  5. [oracle 9i] package has been invalidated...
    Par hoaxpunk dans le forum Oracle
    Réponses: 5
    Dernier message: 14/05/2006, 19h40

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