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 :

Tri et identification des numéros identiques


Sujet :

SAS Base

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Par défaut Tri et identification des numéros identiques
    Bonjour,

    J'ai une table SAS que j'ai triée par numéro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PROC SORT DATA = DOSSIER.MaTable;  BY no; RUN;
    J'aimerais vérifier s'il existe des numéros identiques

    Ensuite, j'aimerais créer un nouveau champ "nombre"

    S'il y a un "no" identique au précédent, je mets "0" dans le champ "nombre".
    Sinon, s'il y a un "no" différent, c'est "1" qui ira dans le champ "nombre".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DATA DOSSIER.MaTable (DROP=no_prec);
    	 attrib no_prec length=8.;
    	 retain no_prec -1;
    	 SET DOSSIER.MaTable;
    	 if no_prec ne no  
    	 then do;
            nombre=1;
            end; 
    	 else 
             nombre=0;
    RUN;
    Mon problème, c'est que le programme mets des "1" partout et pourtant il y a deux numéros identiques dans ma table.

    Quelqu'un peut-il m'aider ?

    Merci beaucoup!

  2. #2
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 56
    Par défaut
    Bonjour,

    Tu peux te servir de la fonction lag pour faire ce que tu souhaites!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DATA Malib.MaTable;
      SET Malib.matable;
      nombre=1; /* On initialise à 1 */
      IF no eq lag1(no) then nombre=0; /* Si no est égal au no précédent, alors nombre = 0 */
    RUN;

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Par défaut
    Salut,

    Citation Envoyé par challe Voir le message
    J'aimerais vérifier s'il existe des numéros identiques
    une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROC SUMMARY DATA = DOSSIER.MaTable nway missing;  
       class no; 
       output out=DOUBLONS(where=(_FREQ_ >= 2));
    run;

    une autre solution SAS 9.2

    xav

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 8
    Par défaut
    MERCI

    Tout fonctionne avec la fonction lag!
    Il converti le no 1 ou 0 en alphanumérique par contre...

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

Discussions similaires

  1. identification des numéros de versions ?
    Par _vince_ dans le forum Intégration Continue
    Réponses: 12
    Dernier message: 03/09/2008, 09h11
  2. [MySQL] Tri avec des données identiques
    Par Nidels dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 18/10/2007, 21h53
  3. Réponses: 3
    Dernier message: 11/07/2005, 15h20
  4. Identification de numéros de téléphone
    Par sfxElrick dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 17/03/2005, 18h40
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29

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