Bonjour,
data all; set test test1-test3;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 data test; cible=' ground'; run; data test1; cible='floor'; run; data test2; cible='level'; run; data test3; cible=' high'; run;
run;
Mon dataset ALL contient une variable appellee cible. Certaine valeur de la vairable cible commence avec au moins un espace ( ce sont la valeurs ground et high)
L'instruction que je veux executer est la suivante : retenir que les variables dont le premier element est un espace. Le code que j'utilise est le suivant ;
le probleme apparait lorsque je veux executer ce code dans le cadre d'une macro; en effet, je compte executer ce type de code pour plusieur dataset et sur plusieurs variables donc j'excute le code suivant que vous pouves aussi executer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 data all_1; set all; where substr(cible,1,1) eq ' '; run;
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 options mprint mlogic symbolgen; %macro ext; PROC SQL noprint; SELECT DISTINCT name INTO :nam FROM sashelp.vcolumn WHERE libname='WORK' and memname='ALL' ; QUIT; %put &nam; proc sql; create table ext as select * where %substr(&nam,1,1)=" "; quit; data all_1; set all; where %substr(&nam,1,1) eq ' '; run; %mend ext; %ext
Ma log contient des erreurs. Le probleme survient au moment de l'instruction %substrt.
je m'explique, &nam est egal a cible. Au lieu de faire substr(cible,1,1) egal a selon les cas ' ','f', 'l' et ' ', il me donne 'c' cad la premiere lettre de ma macro variable. Pourquoi dans le cas hors macro cela fonctionne, et pas dans le cas macro ? Dois-je ajouter une macro fonction ? Avez-vous des suggestions pour proceder autrement ?
Merci d'avance
Proc_man
Partager