楼主: limuqi
2067 11

前n个 关测量相加 [推广有奖]

11
ntsean 发表于 2012-4-17 02:08:40 |只看作者 |坛友微信交流群
proc expand data=temp out=tempout;
  by group;
  convert x=movsum /transformout=(movsum 3);
run;

不过要注意的是,proc expand的moving sum是包括自己和前面2个,和你的定义略有不同,不过可以在 data step做小改动就可以了
如果不是分组的话,那么把by group去掉即可

使用道具

12
2870898 发表于 2012-4-17 17:03:04 |只看作者 |坛友微信交流群
%macro togsum(casedate=);
   %let dsid=%sysfunc(open(&casedate));
   %let i=1;
   %let var_list=;
   %let nvars=%sysfunc(attrn(&dsid,nvars));
   %do &i=1 %to &nvars;
       %let var_list=&var_list  %sysfunc(varname(&dsid,&i));
   %end;
   %let sub_var=%scan(&var_list,1,' ');
   %let j=1;
   %let sum_=;
   data tosum;
   set &casedate;
   %do &j=1 %to &nvars;
       %let sum_=&sum_+&sub_var;
           %let i=%eval(&i+1);
           %let sub_var=%scan(&var_list,&i,' ');
   %end;
   run;
   %let rc=%sysfunc(close(&casedate));
%mend togsum;
给这个问题写的程序但是
错误是找到参数个数多余定义个数,自己不知道是怎么回事?  求解答

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-24 13:13