Question

Y at-il une commande ou un moyen rapide de définir toutes les variables existantes dans le PDV à manquer?

J'ai un code qui fonctionne comme ceci:

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

une fois la première « sortie » déclaration est atteinte, je voudrais réinitialiser toutes les variables manquantes PDV (par exemple var2 = « »; var3 = « »;) mais sans avoir à les déclarer manuellement en tant que tel. Quelqu'un peut-il aider?

Était-ce utile?

La solution

La routine manque d'appel et la liste variable automatique de _all_ feront facilement

call missing(of _all_);

Par exemple

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

proc print data=example2;
run;

produit

                                 The SAS System

                               Obs    var1    Var2    Var3

                                1      A       B       C
                                2      B

Autres conseils

Vous pouvez le faire avec des tableaux.

Voici une macro qui fait tout dans le manque PDV. Le paramètre t est de vous permettre de l'appeler plusieurs fois d'une étape de données unique.


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

Vous pouvez l'utiliser comme ceci:



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

qui produit l'ensemble des données ci-dessous:

  Obs    var1    Var2    Var3

   1      A       B       C
   2      B
   3
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top