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 :

Création d'une variable qui s'incremente de 1 à chaque changement de modalité d'une variable donnée


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 39
    Points : 21
    Points
    21
    Par défaut Création d'une variable qui s'incremente de 1 à chaque changement de modalité d'une variable donnée
    Bonjour à tous, je voudrais créer une variable qui s’incrémente de 1 à chaque fois que la modalité d'une variable donnée change de valeur..Par exemple
    Var1 Var2
    M 1
    M 1
    N 2
    N 2
    N 2
    O 3
    … …
    var1 est une variable numerique suivant laquelle la table tab est triée.
    voici le code que j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    data tab;
    	        set tab;
                        by var1;
    		   retain;
    		if first.var1 then var2=0;
    		var2 +1;
    			run;
    mais il me donne ça
    Var1 Var2
    M 1
    M 2
    N 1
    N 2
    N 3
    O 1
    … …

    J'ai regardé quelques faqs mais j'ai pas vu un problème de ce type. Merci d'avance.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour,

    attention :
    - Retain s'accompagne d'une variable
    - Un tri est nécessaire d'avant d'effectuer une variable

    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 test ; 
    input var1 $ var2 ; 
    cards ; 
    M 1
    M 1
    N 2
    N 2
    N 2
    O 3
    ;
    run ; 
     
    proc sort data = test ; by var1 ; run ; 
     
    DATA tab ;
    SET test (drop=var2);
    BY var1;
    retain var2 0 ;
    IF first.var1 then var2=var2+1;
    run;
    Cdt

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 39
    Points : 21
    Points
    21
    Par défaut
    Merci beaucoup Romain, ça marche bien

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2015, 13h48
  2. recupere une clé qui est incremente automatique
    Par lenetfm dans le forum Langage SQL
    Réponses: 12
    Dernier message: 17/04/2009, 16h12
  3. Réponses: 4
    Dernier message: 11/11/2007, 09h41
  4. [VBA]lancer une macro à chaque changement de cellule dans une feuille
    Par freddddd dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 13h58
  5. Réponses: 7
    Dernier message: 01/07/2006, 16h40

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