Pregunta

¿Hay un comando o una forma rápida de ajustar todas las variables existentes en el PDV a falta?

Tengo algo de código que funciona de esta manera:

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

Una vez que la primera declaración 'salida' se alcanza Me gustaría restablecer todas las variables PDV a que faltan (por ejemplo, var2 = ''; var3 = '';), pero sin tener que declarar de forma manual como tales. ¿Alguien puede ayudar?

¿Fue útil?

Solución

La rutina faltante llamada y el _all_ lista variable automática harán fácilmente

call missing(of _all_);

Por ejemplo

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

proc print data=example2;
run;

produce

                                 The SAS System

                               Obs    var1    Var2    Var3

                                1      A       B       C
                                2      B

Otros consejos

Puede hacerlo con matrices.

Esta es una macro que hace que todo en el PDV faltante. El t parámetro es permitir que llame varias veces a partir de un solo paso de datos.


%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;

Es posible utilizar de esta manera:



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

que produce el siguiente conjunto de datos:

  Obs    var1    Var2    Var3

   1      A       B       C
   2      B
   3
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top