Bonjour,
Je suis un vrai débutant sur SAS... et je dois recoder plus de 100 variables. Je voudrais qu'une macro modifie la valeur de mes variables automatiquement.
Par exemple, je voudrais rentrer une variable finley1 dans la macro et si elle a pour valeur 1 que sa valeur devienne 6 dans une nouvelle variable finley1b, comme ci-dessous :
Je voudrais automatiser cela, par exemple, avec une macro du style : recode (table, ancienne variable que je rentre, nouvelle variable crée). Je ne connais pas du tout bien les macros et j'ai essayé de créé quelque chose, mais je crois que c'est n'importe quoi... Ca ne me semble pas compliqué, mais je n'y arrive pas. Est-ce que quelqu'un pourrait m'aider svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 data testcode ; set testname ; if finley1=1 then finley1b=6 ; else if finley1=2 then finley1b=4.5 ; else if finley1=3 then finley1b=2.5 ; else if finley1=4 then finley1b=1 ; else if finley1=5 then finley1b=0.71 ; else if finley1=6 then finley1b=0.36 ; run ;
Merci d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 %macro recode(table,oldvar,newvar); data limoR; set &table; put &newvar; IF &oldvar=1 then &newvar=6; else if &oldvar=2 then &newvar=4.5; else if if &oldvar=3 then &newvar=2.5; else if &oldvar=4 then &newvar=1; else if &oldvar=5 then &newvar=0.71; else if &oldvar=6 then &newvar=0.36; run; %mend; %recode(limo,alibi1,alibi1r);
Partager