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

  1. #1
    Membre du Club
    Nom de colonne dans une variable proc data
    Bonjour,

    Dans un DATA je n’arrive pas à interpréter une variable comme un nom de colonne

    Ex :

    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 ;
    var1 = 'a' ;
    var2 = 'b' ;
    var3 = 'c' ;
    var4 = 'd' ;
    var5 = 'e' ;
    run ;
     
     
     
    data test2;
         set test;
         do i = 1 to 5;
             val = var&i;
             output;
         end;
    run;



    pour moi pouvoir afficher :

    val
    a
    b
    c
    d
    e
    merci

  2. #2
    Membre expérimenté
    bonjour,
    Plusieurs solutions sont possibles :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    data test ;
    var1 = 'a' ;
    var2 = 'b' ;
    var3 = 'c' ;
    var4 = 'd' ;
    var5 = 'e' ;
    run ;    
     
    /* 1ère solution : Version macro langage */
     
    %macro Transpose ;
    data test2 (keep=val);
    %do i = 1 %to 5;
    set test  ;
    val = var&i;
    output;
    %end;
    run;  
    %mend ; %Transpose ;									   
     
    /* 2ème solution : à la'aide de la proc transpose */
     
    proc transpose data=test out=test_trans(drop=_: rename=(col1=Val))  ;		 
    var var1-var5 ; 
    run;    
     
    /* 3ème solution : à la'aide d'un array dans une etape data */
     
    data test3 (keep=val);
    set test ;
    array trans(5) var1-var5 ;
    do i=1 to 5 ;
    val=trans(i) ; output ;
    end ;
    run;


    Bon Courage
    Ward

  3. #3
    Membre du Club
    Super, merci beaucoup !