andy162639 发表于 2011-11-9 10:32 
怎么声明呢?可否把您的代码修改一下,告诉我,谢谢。
一模一样的做法呀,只是分开来做而已。
data a;
input a b c d e f g h k $ t p $;
cards;
1 2 3 4 5 6 2 4 r 3 g
5 6 3 2 4 5 6 7 t 4 t
3 4 5 6 7 8 2 5 w 5 r
;
filename outn 'c:\outn.sas';
filename outc 'c:\outc.sas';
options source2;
proc contents data=a out=var noprint;run;
data varn;
set var;
where varnum>=2 and type=1;
if _n_=1 then name='array nmis{*} '||trim(name);
run;
data varc;
set var;
where varnum>=2 and type=2;
if _n_=1 then name='array cmis{*} '||trim(name);
run;
data _null_;
file outn;
set varn;
put name;
run;
data _null_;
file outc;
set varc;
put name;
run;
data b;
set a;
%include outn;
;
if _n_>=2 then do i=1 to dim(nmis);
nmis(i)=.;
end;
drop i;
%include outc;
;
if _n_>=2 then do i=1 to dim(cmis);
cmis(i)='';
end;
drop i;
run;