Bonjour,
Je cherche à vérifier les valeurs de l'ensemble des variables de l'ensemble de mes datasets.
Pour cela, j'ai voulu créer une macro qui prend en paramètre la librairie contenant mes datasets.
J'ai 1 problème dans mon Array où chaque colonne correspond à une variable du dataset sauf que je ne connais pas les noms des colonnes, et je voudrais les appeler var1, var2, ... donc je ne sais pas comment déclarer mon array.
Voici mon code:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 %macro CheckProblems(MyLibrary); ods output members=ListTables; proc datasets lib=&MyLibrary nodetails nowarn; quit; data ListTables; set ListTables; order=_N_; run; proc sql noprint; select max(order) into: nbtable from ListTables; quit; %do i=1 %to &nbtable; proc sql noprint; select name into: NameTable from ListTables where order=&i; quit; proc sql; create table ListVariables as select name from dictionary.columns where upcase(libname)=&MyLibrary and upcase(memname)=&NameTable; quit; data ListVariables; set ListVariables; order=_N_; run; proc sql noprint; select max(order) into: nbvar from ListVariables; quit; data &NameTable; set &MyLibrary..&NameTable; array AllVariables {*} var1 - var.&nbvar; /* probleme */ %do i=1 %to dim(AllVariables); %if AllVariables[i]=888 or AllVariables[i]=999 %then problem=1; %end; run; proc sql; select * from &NameTable where problem=1; quit; %end; %mend;
Je vous remercie par avance pour votre aide.
Partager