Nun. Ich bin von diesen kaufmännischen Ampeln total geschlagen. Ich verstehe nicht, warum sie so viele kaufmännische Und-Zeichen vor einer Makrovariablen brauchen. Gibt es einen Trick, um die Verwendung von kaufmännischen Und-Zeichen zu beherrschen? BTW, was sind die fünf Ergebnisse, entsprechend?
Mit einem einzigen Satz kaufmännischer Ampeln ist das, was Sie bekommen, ziemlich langweilig; nach einem führt eine ungerade Anzahl von Et-Zeichen zu einer doppelten Auflösung, eine gerade Anzahl von Amp-Strings wird einmal aufgelöst. Sie verwenden also 1 kaufmännisches Und-Wort, um es einmal zu lösen, und 3 kaufmännische Und-Zeichen, um es zweimal zu lösen, es sei denn, Sie haben Aktien in der Firma, die Rechte an kaufmännischen Und-Zeichen besitzt.
Interessanter ist der folgende Test, der zeigt, warum gerade Zahlen von Und-Zahlen einen Wert haben:
%Vor%Grundsätzlich führt SAS bei jedem Durchlauf Folgendes durch:
Diese werden gleichzeitig und iterativ ausgeführt, bis alle Ampersands verschwunden sind und jedes Ergebnis für die nächste Iteration beibehalten wird und die aktuelle Iteration nicht beeinflusst. So wird &test&one
zu onetwo
, weil &test
- & gt; eins und &one
- & gt; zwei. Schritte für die verbleibenden:
&&test&one
- & gt; &testtwo
- & gt; %Code%. %Code%. Die doppelte one
vor dem Test wird &&|test|&one
, der Test bleibt bestehen und &&
wird in &
aufgelöst. Damit bleibt &one
für den zweiten Durchlauf übrig, der in two
aufgelöst wird. &testtwo
- & gt; one
- & gt; löst nicht auf. &&&test&one
- & gt; &onetwo
- & gt; DNR. &&|&test|&one
- & gt; &|one|two
- & gt; &&&&test&one
- & gt; ein. &&testtwo
- & gt; &testtwo
- & gt; &&|&&|test|&one
- & gt; ein. Zwei Paare werden jeweils auf eins aufgelöst, wodurch ein Paar entsteht, das dann in eins aufgelöst wird, wodurch &&|testtwo
aufgelöst wird. &testtwo
ähnelt drei kaufmännischen Und-Fällen, aber mit einem zusätzlichen Paar. &testtwo
wird in &&&&&test&one
aufgelöst in &&&&&&test&one
wird in zwei aufgelöst. &&&testtwo
- & gt; &one
- & gt; &&|&&|&&|test|&one
- & gt; zwei. Die ungerade Anzahl von Paaren bedeutet, dass wir einen weiteren Satz von Auflösungen erhalten. Am Ende des Tages, was Sie sich merken müssen:
&&|&testtwo
- & gt; &one
- & gt; &&prefix&suffix
) zu lösen. &&&var
, &var2
] var3
- & gt; &prefix=var
- & gt; &suffix=2
- & gt; &&&&&&prefix&suffix
). Darüber hinaus sind 4 oder mehr (außer 6) nur für besonders komplexe Kombinationen nützlich; die zusätzlichen Ebenen würden verwendet, um die Auflösung bis zu bestimmten Zeiten zu verzögern.