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?
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