|
|
楼主

楼主 |
发表于 2009-6-6 23:48:17
|
只看该作者
求助 为什么用proc sql 连接两个数据集得到的是迷失数据
这是我第一次写sas程序,不过我觉得bays他的程序程序很好,运行很快,主要是不用append,但是第一部分修改的很好,
第一部分是没有什么问题的,
第二部分问题有来了,我用的是macro中又调用了cusum,而且cusum中产生的是数据集,不是一个观察值,这次我如何不用APPEND 来得到我想要得结果呢,我想了向可以用PROC SQL 来 合并数据集,但是不知道是不是编程的问题一直没有实现
我自己也下了这样的程序,不知道为什么一直得到的deltasum数据集中全部是迷失数据
%macro deltacal;
data deltasum;
sum=.;
mean=.;
delta=.;
run;
%do miu_=10 %to 20 %by 5;
%let delta=%sysevalf(&miu_/100);
%cusum(t=50000);
proc sql;
create table delta as
select * from deltasum;
proc sql;
create table deltasum as
select * from delta
outer union
select * from asdmean;
%end;
%mend deltacal;
%deltacal;
这是我的数据的第二部分
第一部分如下
%macro cusum(k=.05,ucl=4.1089,w=50,outfile=asdsum,t=50,delta=.10);
Data &outfile(drop=mm);
do mm=1 to &t;
j=0;
c=0;
do while (c<&ucl);
j+1;
if(j>=&w) then x=rannor(0)+&delta;
else x=rannor(0);
c+x-&k;
c=max(c,0.00);
end;
output;
end;
run;
data asdmean(keep=mean sum delta);
set asdsum end=endobs;
if (j>=50) then do;
sum+1;
rl+j-50;
end;
if endobs;
mean=rl/sum;
delta=&delta;
run;
%mend cusum;
%cusum; |
|