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 Discussion :

Décaler une colonne d'une ligne


Sujet :

SAS

  1. #1
    Candidat au Club
    Décaler une colonne d'une ligne
    Bonjour,
    J'ai une colonne dans une base de données SAS:
    col1
    100
    101
    104
    110
    Je veux obtenir une 2ème colonne telle que la 1ere colonne soit décalée d'une ligne!
    col1 Col2
    100 101
    101 104
    104 110
    110.
    Merci pour votre réponse. C'est certainement tout bête.
    Cordialement.
    Val

  2. #2
    Membre du Club
    Bonjour,
    Triez pour avoir les données dans le sens inverse et utilisez la fonction lag.
    Puis triez de nouveau pour retrouver l'ordre d'origine.
    Cordialement,
    Véronique

  3. #3
    Membre expérimenté
    Bonjour,
    On peut faire ce type de décalage avec un seul PROC SQL :
    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
     
    data Test ;
    input Obs Col1 ;
    datalines ;
    1 100
    2 101
    3 102
    4 103
    5 104
    6 105
    ; run ; 
     
    Proc sql;
    Select Test.Col1, Suiv.Col1 as Col2
    from Test left join Test as Suiv
    on Test.Obs + 1 = Suiv.Obs ;
    Quit;


    Bon Courage
    Ward