全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1989 7
2014-08-08
请问一下,怎么变量里的值每隔固定间距相加呢??

如变量a有1000个值,那么把把前20个 加起来,然后21-40加起来.如此类推....
二维码

扫码加我 拉你入群

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

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

全部回复
2014-8-8 09:44:45
data test;
   do i=1 to 1000;
             output;
        end;
run;

proc sql;
   create table wanted as
    select distinct i,sum(i) as sum
         from test
         group by ceil(monotonic()/20);
quit;
二维码

扫码加我 拉你入群

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

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

2014-8-8 09:57:04
%macro a(table,n,variable);
data temp;
set &table;
g=ceil(_n_/&n);
run;


proc sql;
create table answer as
select sum(&variable) as sum from &table
group by g;
quit;

%mend;
二维码

扫码加我 拉你入群

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

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

2014-8-8 10:04:17
pobel 发表于 2014-8-8 09:44
data test;
   do i=1 to 1000;
             output;
请问一下...如果要连乘那怎么办......我根据sql这个不会改- -
二维码

扫码加我 拉你入群

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

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

2014-8-8 10:04:48
intheangel 发表于 2014-8-8 09:57
%macro a(table,n,variable);
data temp;
set &table;
如果要做别的运算...不只是求和,那怎么办 - -?
二维码

扫码加我 拉你入群

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

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

2014-8-8 10:13:39
等风来撒 发表于 2014-8-8 10:04
请问一下...如果要连乘那怎么办......我根据sql这个不会改- -
data test;
   do i=1 to 1000;
             output;
        end;
run;

proc sql;
   create table wanted as
    select distinct i,exp(sum(log(i))) as prod
         from test
         group by ceil(monotonic()/20);
quit;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

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