문제

PDV의 모든 기존 변수를 누락으로 설정하는 명령 또는 빠른 방법이 있습니까?

다음과 같이 실행되는 코드가 있습니다.

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

첫 번째 '출력'문에 도달하면 모든 PDV 변수를 누락 된 것으로 재설정하고 싶습니다 (예 : var2 = ''; var3 = '';). 그러나 수동으로 선언하지 않아도됩니다. 누구든지 도울 수 있습니까?

도움이 되었습니까?

해결책

호출 누락 루틴 및 _all_ 자동 변수 목록이 쉽게 수행됩니다

call missing(of _all_);

예를 들어

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

proc print data=example2;
run;

생산합니다

                                 The SAS System

                               Obs    var1    Var2    Var3

                                1      A       B       C
                                2      B

다른 팁

배열로 할 수 있습니다.

다음은 PDV의 모든 것을 놓친 매크로입니다. 매개 변수 t 단일 데이터 단계에서 여러 번 호출 할 수 있습니다.


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

다음과 같이 사용할 수 있습니다.



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

다음 데이터 세트를 생성합니다.

  Obs    var1    Var2    Var3

   1      A       B       C
   2      B
   3
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top