Frage

Gibt es einen Befehl oder eine schnelle Möglichkeit, alle vorhandenen Variablen in der PDV einstellen zu fehlen?

Ich habe einige Code, der wie folgt lautet:

Data example2; 
var1='A';
Var2='B';
Var3='C';
/* etc*/
output;
Var1='B';
output;
stop;
run;

, sobald der erste ‚Output‘ Anweisung erreicht wird ich alle PDV Variablen zurücksetzen möchten fehlt (zB var2 = ‚‘; var3 = ‚‘;), aber ohne sie manuell zu erklären, als solche. Kann mir jemand helfen?

War es hilfreich?

Lösung

Der Aufruf fehlende Routine und die _all_ automatische Variablenliste wird es leicht tun

call missing(of _all_);

Zum Beispiel

Data example2;
var1='A';
Var2='B';
Var3='C';
output;
call missing(of _all_);
Var1='B';
output;
stop;
run;

proc print data=example2;
run;

erzeugt

                                 The SAS System

                               Obs    var1    Var2    Var3

                                1      A       B       C
                                2      B

Andere Tipps

Sie können es mit Arrays tun.

Hier ist ein Makro, das fehlt alles in der PDV macht. Der Parameter t ist, damit Sie es mehrmals von einem einzigen Datum Schritt nennen.


%macro cleanpdv(t);
array __c&t{*} _character_;
array __n&t{*} _numeric_;
do __i&t=1 to dim(__c&t);
  call missing(__c&t{__i&t});
end;
do __i&t=1 to dim(__n&t);
  call missing(__n&t{__i&t});
end;
drop __i&t;
%mend;

Sie können es wie folgt verwendet werden:



Data example2;
var1='A';
Var2='B';
Var3='C';
/* etc*/
output;
%cleanpdv(1);
Var1='B';
output;
%cleanpdv(2);
output;
stop;
run;

, die erzeugt den folgenden Datensatz:

  Obs    var1    Var2    Var3

   1      A       B       C
   2      B
   3
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top