全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4554 4
2012-12-06
请教各位前辈,
      小弟在处理数据时,需要通过两个循环变量i,j来依次计算一些数据,想在每次计算了一组i和j之后,将结果输出或者保存到一个数据集中,这样循环完毕后,能得到不同的参数i,j下的最后计算结果的汇总。真心求教,请问该如何实现?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-12-6 14:14:26
data test;
   do i=1 to 10;
      do j=1 to 5;
             x=3*i+8*j;
                 output;
          end;
   end;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-6 14:26:25
pobel 发表于 2012-12-6 14:14
data test;
   do i=1 to 10;
      do j=1 to 5;
多谢,我运行后有点问题,是我没有说清情况,我有一个数据集大概32400行,需要对于每一组i和j从头到尾计算完整个32400行后输出最后的结果,然后再计算下一组i和j。可是现在按照您的方法运行后,是针对所有的i和j组合计算第一行,然后在第二行计算所有的i和j组合。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-6 15:40:52
data have;
   do x=1,3,5,6,7;
     output;
   end;
run;


data want;
   retain y;
   drop x;
   do i=1 to 10;
      do j=1 to 5;
               y=0;
               do obs=1 to nobs;
                      set have point=obs nobs=nobs;
              y=sum(y,x*i+j);
                   end;
                   output;
          end;
   end;
   stop;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-6 15:52:06
data have;
   do x=1,3,5,6,7;
     output;
   end;
run;


data want;
   set have end=last;
   array y(10,5) y1-y50;
   retain y:;
   
   do i=1 to 10;
      do j=1 to 5;
              y(i,j)=sum(y(i,j),x*i+j);
           end;
        end;

        if last then do;
       do i=1 to 10;
              do j=1 to 5;
                     yy=y(i,j);
                         output;
                  end;
           end;
        end;
        keep i j yy;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群