SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 802|回复: 6
打印 上一主题 下一主题

求助

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-5-27 09:59:01 | 只看该作者

求助

求一组数据中前k项均值与后n-k项的均值差值得最大值,即求k值和最大值,
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-5-27 10:55:53 | 只看该作者

Re: 求助

感觉问题描述不够清晰,是不是对k进行遍历一次,求得某个k值时的目标值最大?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-5-27 11:32:37 | 只看该作者

Re: 求助

就不告诉你 ,就不告诉你。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-5-27 11:40:53 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2009-5-27 13:44:05 | 只看该作者

Re: 求助

模仿一下(缺失值的个数没有计入分母):
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2009-5-27 17:00:05 | 只看该作者

Re: 求助

就是遍历求差值的最大值,大家都是高手,这么快就编好了
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2009-5-27 22:05:43 | 只看该作者

Re: 求助

不用宏也可以实现。
双set + sql方法,不过有点麻烦的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 15:56 , Processed in 0.087708 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表