Bonjour,
J'essaie d'améliorer mon niveau de programmation en SAS macro mais là je bute sur un problème et je n'ai même pas le début d'une solution.
Je voudrais automatiser ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 PROC SQL; CREATE TABLE LIMITV_temp6 AS SELECT t1.BEN_NIR_IDT, /* not_contains_H */ (Case When (t1.CIM1="" or t1.CIM1 not contains "H") and (t1.CIM2="" or t1.CIM2 not contains "H") and (t1.CIM3="" or t1.CIM3 not contains "H") and (t1.CIM4="" or t1.CIM4 not contains "H") then 1 Else 0 end) AS not_contains_H FROM LIMITV_temp5 t1; QUIT;
J'ai tenté ceci:
&nb_max_cim est une macro variable que je créé au début de mon programme car elle peut varier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 %macro top2; Data LIMITV_temp6; Set LIMITV_temp5; %DO i = 1 %to &nb_max_cim; If CIM&i="" or CIM&i not =: "H" then not_contains_H= 1; Else not_contains_H=0; %end ; Run; %MEND TOP2; %TOP2;
Mais ça ne me donne pas le résultat attendu à savoir il faut que l'ensemble de mes variables CIM1 à CIM4 ne doivent pas contenir la lettre H.
J'espère être suffisamment claire et j'espère surtout que vous pourrez m'apporter votre aide.
Par avance merci.
Camille
Partager