SAS中文论坛

标题: 求助 [打印本页]

作者: shiyiming    时间: 2009-5-27 09:59
标题: 求助
求一组数据中前k项均值与后n-k项的均值差值得最大值,即求k值和最大值,
作者: shiyiming    时间: 2009-5-27 10:55
标题: Re: 求助
感觉问题描述不够清晰,是不是对k进行遍历一次,求得某个k值时的目标值最大?
作者: shiyiming    时间: 2009-5-27 11:32
标题: Re: 求助
就不告诉你 ,就不告诉你。
作者: shiyiming    时间: 2009-5-27 11:40
标题: Re: 求助
[code:2su7wsq8]data ahuige;
   input A B;
cards;
2 3
2 3
5 7
7 9
. 2
1  5
3  8
1 15
;
run;

data ex2(rename=(a=ma b=mb));
  set ahuige (obs=0);
  k=.;
  run;

%macro sxl (data= , outfile=ex2);

data _null_;
   set &data. (drop=_all_) nobs=nmax;
   call symput('nmax',nmax);
run;

%do i=1 %to &nmax-1;
data ex(keep=k ma mb);
   set &data. ;
   k=&i;
  if _N_ <= &i then
      do;
           aa1+A;bb1+B;
                   if missing(A) then missa1+1;
           if missing(B) then missb1+1;
        end;
      else do;
          aa2+A;bb2+B;
          if missing(A) then missa2+1;
          if missing(B) then missb2+1;
        end;

  if _N_=&nmax then
        do;
           ma=aa1/(&i.-missa1)- aa2/(&nmax-&i.-missa2);
           mb=bb1/(&i.-missb1)- bb2/(&nmax-&i.-missb2);
           output;
        end;

   run;

proc append base=ex2 data=ex ;                                            
run;

%end;
%mend;

%sxl(data=ahuige , outfile=ex2);

   proc print;
   run;[/code:2su7wsq8]
作者: shiyiming    时间: 2009-5-27 13:44
标题: Re: 求助
模仿一下(缺失值的个数没有计入分母):
作者: shiyiming    时间: 2009-5-27 17:00
标题: Re: 求助
就是遍历求差值的最大值,大家都是高手,这么快就编好了
作者: shiyiming    时间: 2009-5-27 22:05
标题: Re: 求助
不用宏也可以实现。
双set + sql方法,不过有点麻烦的。




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2