全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3357 1
2011-03-13
小弟今日学习sas,碰到如下数据:

year mon1 mon2 mon3 mon4 mon5 mon6 mon7 mon8 mon9 mon10 mon11 mon12
1989 34 65 54 36 66 42 82 46 77 83 73 55
1990 22 76 88 43 55 62 35 77 27 42 33 52

现在想要计算每年各季度的和,写的程序如下:
data sales2(drop=i j mon1-mon12);
infile datalines;
input year mon1-mon12;
array m(4,3) mon1-mon12;
array qrt(4);
do i=1 to 4;
  do j=1 to 3;
  qrt(i)=sum(of m(i,1)-m(1,j));
  end;
end;
datalines;
1989 34 65 54 36 66 42 82 46 77 83 73 55
1990 22 76 88 43 55 62 35 77 27 42 33 52
;
run;

但是,sas的sum函数不认二维数组,把m(i,1)的m(i,j)累加当作了他们相减,请问sum函数真的不能用于二维数组吗?在sum函数里面把需要加的变量都列出来可以正确执行,但我就是想用嵌套循环的方法……求教啊!
二维码

扫码加我 拉你入群

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

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

全部回复
2011-3-28 23:21:47
这个应该合适你。
data sales1;
input year mon1-mon12;
array m(4,3) mon1-mon12;
array qrt(3)q1-q3;
do i=1 to 4;
        do j=1 to 3;
        qrt(j)=m(i,j);
        end;
        output;
end;
datalines;
1989 34 65 54 36 66 42 82 46 77 83 73 55
1990 22 76 88 43 55 62 35 77 27 42 33 52
;
run;
data sales2;
set sales1;
array qrt(3)q1-q3;
total=0;
do i=1 to 3;
        total+qrt;
end;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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