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 :

NOTE: Invalid numeric data, 'RE' , at line 18128 column 103.


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2013
    Messages : 15
    Points : 9
    Points
    9
    Par défaut NOTE: Invalid numeric data, 'RE' , at line 18128 column 103.
    Bonjour à tous,

    Voila j'ai un code SAS très basique :
    Data initiale :
    VAR VAR2 lignes
    A V 1
    A V 2
    A F 3
    B V 4
    B F 5

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data A B AUTRES; set INIT;
    if VAR = "A" AND VAR2 ="V" then output A;
    if VAR = "A" AND VAR2 NE "F" then output B;
    if VAR = "B" then output B;
    else output AUTRES;
    run;

    Résultat :
    VAR VAR2 lignes
    A V 1
    A V 2
    A F 3 => Alors que on ne la veut pas...

    VAR VAR2 lignes

    B V 4
    B F 5
    A F 3

    => J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NOTE: Invalid numeric data, VAR='A' , at line 18128 column 226.
    De plus SAS me duplique des lignes comme s'il me prenait pas en compte le AND du if


    Bref y a t'il un code plus propre pour ce genre de chose ?

    Comment intérpréter l'erreur car VAR est caractère, pourquoi il me l'évalue en numéric ?

    je désesère

    merci à vous !!!

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant Finance/Assurance
    Inscrit en
    Décembre 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Finance/Assurance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 198
    Points : 638
    Points
    638
    Par défaut
    Bonjour,

    J'ai essayé ton code et je n'ai pas de message d'erreur. En plus il donne les résultats que tu lui demandes !
    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
     
    data init;
    input VAR $ VAR2 $ lignes;
    cards;
    A V 1
    A V 2
    A F 3
    B V 4
    B F 5
    ;
    run;
     
     
    data A B AUTRES; 
    set INIT;
    if VAR = "A" AND VAR2 = "V" then output A;
    if VAR = "A" AND VAR2 ne "F" then output B;
    if VAR = "B" then output B;
    output AUTRES;
    run;
    Resultats :

    table A
    Var Var2 ligne
    A V 1
    A V 2

    Table B
    A V 1
    A V 1
    B V 4
    B F 5

    J'ai 2 obs dans ma table A et 4 obs dans ma table B et tu auras toutes les obs qui n'ont pas var=B dans la table 'Autres'. Tu auras une répétition des observations de ta table A dans la B car les observations qui ont VAR = "A" AND VAR2 = "V" satisfont la seconde condition if. En fait je ne vois pas où est le problème, peux tu nous dire ce que tu souhaites en table de résultat plutôt ? Ce sera plus clair !

    Bonne journée

  3. #3
    Membre éprouvé
    Avatar de Stackware
    Homme Profil pro
    ArchiDuc de la Sasserie
    Inscrit en
    Juillet 2013
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ArchiDuc de la Sasserie
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2013
    Messages : 439
    Points : 1 017
    Points
    1 017
    Billets dans le blog
    4
    Par défaut
    Salut,
    L’algèbre de Bool, tu connais ?
    if VAR = "A" AND VAR2 ="V" then output A;
    if VAR = "A" AND VAR2 NE "F" then output B;

    => Si var = a et var2 = V, tu dois avoir 2 outputs, et c'est normal (v est bien différent de f)...
    je suppose que var = a et var2 = f donne AUTRES (ce n'est pas traité).
    comment le coder correctement?
    if condition1 then output1
    elsif condition2 then output2
    elsif condition3 then output3
    else output4;

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2013
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Bon bon bon, commen effacer la discution pour ne pas passer pour un ***.... ?

    Erreur de débutant : j'avais 2 conditions exactes du style :

    if VAR="A" then output A;
    if VAR="A" AND VAR2 ="V" then output A;

    J'évalue 2 fois, et c'est 2 fois vrai donc duplication...

    DSL pour le poste poubelle...

    Merci, le fait d'exposer un pb nous amène souvent à le résoudre !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/05/2015, 10h46
  2. Réponses: 2
    Dernier message: 14/04/2009, 10h03

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