全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7806 8
2015-11-10


我有如下数列:
stkcd         year     a
000001    2007     1
000001    2007     2
000001    2009     1
000002    2008     1
000002    2008     1
000002    2009     2
000002    2009     1
....

我希望对每个stkcd、将同一个year中的a加总,最后得到的结果如下:
stkcd          year      a1
000001       2007     3
000001       2009     1
000002       2008     2
000002       2009     3
...

我查了下论坛,有人提出按这种代码:
data a1_1;
        set a1;
        by stkcd year;
        if first.year then cum_a=a;
                else cum_a+a;run;
但是这种代码最后得到的结果如下:

stkcd         year     a    cum_a
000001    2007     1       1
000001    2007     2        3
000001    2009     1       1
000002    2008     1       1
000002    2008     1        2
000002    2009     2        2
000002    2009     1        3
....

虽然我能得到我想要的加总数据,但是后续我还是需要进一步删除一些重复的数据。所以想问问大家,有什么方法可以一步得到我想要的表格结果,或者如果得到最后这个表格如何把那些重复没用的行(就是斜体加粗的那几行)删除呢?

二维码

扫码加我 拉你入群

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

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

全部回复
2015-11-10 05:00:43
set a1;
by stckcd year;
if first.year then total_a = 0;
total_a +a;
if last.year;

或者可以试一下 proc report 里面的break after year
二维码

扫码加我 拉你入群

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

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

2015-11-10 05:15:01
谢谢啦~,这个代码我试过了,但是针对同一个stkcd同一年会有重复的一些行数(如我原帖中最后一个表格的结果);
我想知道有没有什么方式可以直接得到第二个表格那样的结果哈~
二维码

扫码加我 拉你入群

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

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

2015-11-10 05:15:39
Chenny_Guo 发表于 2015-11-10 05:00
set a1;
by stckcd year;
if first.year then total_a = 0;
谢谢啦~,这个代码我试过了,但是针对同一个stkcd同一年会有重复的一些行数(如我原帖中最后一个表格的结果);
我想知道有没有什么方式可以直接得到第二个表格那样的结果哈~
二维码

扫码加我 拉你入群

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

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

2015-11-10 06:19:18
你漏掉最后一行程序
二维码

扫码加我 拉你入群

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

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

2015-11-10 06:29:25
teqel 发表于 2015-11-10 06:19
你漏掉最后一行程序
哦哦,对哦~~
发现啦~~
THX~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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