写了一个module在proc iml下来做一个two sample t test。
proc iml;
start q4(q);
use q;
read all var {x1 x2} into x;
x1=x[*,1];
x2=x[*,2];
n=nrow(x1);
x1bar=mean(x1);
x2bar=mean(x2);
d1=x1-x1bar*j(n,1);
d2=x2-x2bar*j(n,1);
s1=d1`*d1/(n-1);
s2=d2`*d2/(n-1);
t=(n/(s1+s2))**0.5*(x1bar-x2bar);
df=2*n-2;
pvalue=2*probt(t,df);
print t,pvalue;
finish;
测试过不写module而是直接用在数据上是结果是没问题的,但是当要用module的时候出现问题了,下面是数据
data ones;
input x1 x2;
cards;
1 2
4 5
7 8
3 8
9 7
6 3
;
run;
当我把数据写在iml里面时,run q4(ones)虽然没问题但是不会出来结果;当我把数据写在iml上面时,sas告诉我ERROR: File WORK.Q.DATA does not exist。不知道怎么回事,向大家请教下