Pergunta

Existe um comando ou uma maneira rápida para definir todas as variáveis ??existentes no PDV para faltando?

Eu tenho algum código que funciona assim:

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

Uma vez que a primeira declaração 'de saída' é atingido Eu gostaria de redefinir todas as variáveis ??do PDV a falta (por exemplo, var2 = ''; var3 = '';), mas sem a necessidade de declará-los manualmente como tal. Alguém pode ajudar?

Foi útil?

Solução

A falta de rotina chamada ea lista _all_ variável automática irá fazê-lo facilmente

call missing(of _all_);

Por exemplo

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

proc print data=example2;
run;

produz

                                 The SAS System

                               Obs    var1    Var2    Var3

                                1      A       B       C
                                2      B

Outras dicas

Você pode fazê-lo com matrizes.

Aqui está uma macro que faz tudo no PDV faltando. O t parâmetro é para que você possa chamá-lo várias vezes a partir de uma etapa única de dados.


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

Você pode usá-lo como este:



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

que produz o seguinte conjunto de dados:

  Obs    var1    Var2    Var3

   1      A       B       C
   2      B
   3
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top