楼主刚接触macro 请问sas高手为什么下面一段程序在编辑器里的时候 data statement里data甚至都不会变颜色?也就是说语句是无效的?应该改哪里?
libname ttest 'c:\t_test\trials';
proc printto log='c:\t_test\trials\logfile.tmp';
run;
%macro ttest;
%do a=1 %to 2;
%do b=1 %to 2;
%do i=1 %to 10000;
data ttest;
alpha=0.05;
mean=50;
sd1=10;
n1=20;
if &a=1 then sd2=sd1;
else sd2=sd1*1.5;
if &b=1 then n2=n1;
else n2=n1*2;
sum1=0;
sum2=0;
ssu1=0;
ssu2=0;
do i=1 to n1;
x1=mean+sd1*rannor(0);
sum1=sum1+x1;
ssu1=ssu1+x1**2;
end;
do j=1 to n2;
x2=mean+sd2*rannor(0);
sum2=sum2+x2;
ssu2=ssu2+x2**2;
end;
ssu1=ssu1-((sum1**2)/n1);
ssu2=ssu2-((sum2**2)/n2);
mean1=sum1/n1; mean2=sum2/n2;
varp=(ssc1+ssc2)/(n1+n2-2);
t=(mean1-mean2)/sqrt(varp*(1/n1+1/n2));
df=n1+n2-2;
if t<0 then pt=2*probt(t,df);
else if t>0 then pt=2*(1-probt(t,df));
if pt<alpha then sig=1;
else sig=0;
if &a=1 then eq_var=' equal';
else eq_var='unequal';
if &b=1 then eq_n=' equal';
else eq_n='unequal';
data new;set ttest;
keep t df pt sig eq_var eq_n;
proc append base=ttest;
run;
%end;
%end;
%end;
%mend ttest;
%ttest;
run;
data a; set ttest;
proc sort;by eq_var eq_n;
proc freq;by eq_var eq_n;
table sig;
run;