data tgt;
intl=10;
if int(nobs/intl) =nobs/intl then len=nobs/intl;
else len=int((nobs-1)/intl)+1;
set tmp end=eof nobs=nobs;
retain tgt 0 seq 1 i 0;
tgt=sum(tgt,row);
i+1;
if _N_>1 then do;
if mod(_N_-1,len)=0 then do;
tgt=row;
i=1;
seq=seq+1;
end;
end;
run;
我自己琢磨了半天用了一个最笨的办法,把所有observation从1标到最后,然后用这个标号/total number of obs.,最后用这个<0.1,label为1,0.2-0.3 label为2,...。
我去学学这个len怎么用。作者: shiyiming 时间: 2009-11-17 15:33 标题: Re: 分组求平均的问题 请问如果是按group分组,而按另一个变量NN=1的个数来分10个数据集该怎么办呢?
NN=1的观测在每个group中数量都是不同的。谢谢!作者: shiyiming 时间: 2009-11-18 13:29 标题: Re: 分组求平均的问题 [code:1ktf8g2j]data new; do x=1 to 23; output; end; run;
data new1;
do group=1 to 10;
nGrp =ceil((nobs-n)/(11-group));
do k =1 to nGrp;
n +1; output;
end;
end;
set new nobs =nobs;
run;
data xx; merge new1 new; run;
proc sql; select distinct group, nGrp, avg(x) as mean from xx group by group;
quit;[/code:1ktf8g2j]
关于分组的建议:如果N《10 没有意义;如果N不被10整除,如何均摊余数是个问题。我想如果n=11,那么一个组2个,九个组1个观察;如果n=23,那么三个组3个,七个组2个观察,如上所示,算是较均衡的方法吧作者: shiyiming 时间: 2009-11-18 15:48 标题: Re: 分组求平均的问题 [quote="jingju11":2gykvuew][code:2gykvuew]data new; do x=1 to 23; output; end; run;
data new1;
do group=1 to 10;
nGrp =ceil((nobs-n)/(11-group));
do k =1 to nGrp;
n +1; output;
end;
end;
set new nobs =nobs;
run;
data xx; merge new1 new; run;
proc sql; select distinct group, nGrp, avg(x) as mean from xx group by group;
quit;[/code:2gykvuew]
关于分组的建议:如果N《10 没有意义;如果N不被10整除,如何均摊余数是个问题。我想如果n=11,那么一个组2个,九个组1个观察;如果n=23,那么三个组3个,七个组2个观察,如上所示,算是较均衡的方法吧[/quote:2gykvuew]