Ich versuche ein Makro zu verwenden, um einige Array-Variablen in SAS zu beschriften, um zu vermeiden, viele Codezeilen eingeben zu müssen. Was ich versuche das ist im Grunde zu tun:SAS: Array an Makro übergeben
%macro LABEL_ARRAY(V);
%DO I = 1 %TO 4;
%let variablename=&V(&I);
array1[&I] = "Value of &variablename"
%END
%MEND LABEL_ARRAY;
So V ist ein Array die entsprechenden Variablennamen für die Positionen in der Anordnung array1 enthält. Ich versuche, dies für mehr als 4 Variablen pro Array und für zahlreiche Arrays zu tun, aber das ist die Grundidee. Im Grunde genommen ist das Array1 [& I], das ich Array1 [1] für den ersten Eintrag sagen möchte, verwendet nicht den Wert von I, sondern nur & I, dasselbe mit & Variablenname.
Irgendwelche Vorschläge, was passieren könnte? Vielen Dank.
Sie könnten% vermietet Variablennamen versuchen = & &V(&I); zu sehen, ob das funktioniert, aber ich vermute nicht. Ändern Sie es tatsächlich zu:% Lassen Sie Variablenname = &&V&I; und das sollte funktionieren – DCR
Ich bin verwirrt, was Sie wollen. Können Sie einen Datenschritt anzeigen, der Ihr Makro verwendet? Sie sagen, Sie möchten Variablen benennen, aber es gibt keine LABEL-Anweisung. Array1 [& i] wird zu array1 [1] aufgelöst, wie Sie sagen, dass Sie wollen. & Variablenname wird nicht in einen Variablennamen aufgelöst. Vielleicht möchten Sie sich die VNAME-Funktion ansehen. Sie können jedoch keine Datenschrittmatrix verwenden, um Variablenbeschriftungen zuzuweisen. – Quentin
@Quentin Vermutlich baut dies eine Reihe von label-Anweisungen auf, die dann wie 'label% label_array (v);' – Joe