全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5536 12
2010-09-27
悬赏 50 个论坛币 未解决
codedate1date2r
1110.1
1120.2
1210.3
1220.4
2110.1
2120.2
2210.3
2220.5

根据上面的表格生成下面的表格
其中rr是相同date2 的数据的累计相乘

codedate1rr
110.02
120.12
210.02
220.15



注意:由于数据量很大(几亿的数据量),所以求优化的算法。

sql语句尽量不要!proc sort也会效率很低。


向各位高手致敬!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-9-27 15:42:05
抛个砖。。。

data test;
input code date1 date2 r ;
cards;
2 1 1 0.1
2 1 2 0.2
2 2 1 0.3
2 2 2 0.5
1 1 1 0.1
1 1 2 0.2
1 2 1 0.3
1 2 2 0.4
;
run;

proc tabulate data=test out=aa;
    class code date1 r;
    table code,date1,r;
run;

data wanted;
    set aa;
by code date1;
retain rr;
keep code date1 rr;
if first.date1 then rr=1;
rr=rr*(r**N);
if last.date1 then output;
run;
二维码

扫码加我 拉你入群

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

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

2010-9-27 16:52:18
我只想到sql的求和和data步累乘
静等其他好的算法......
二维码

扫码加我 拉你入群

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

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

2010-9-27 21:42:18
原始数据集按code,date1排好序了吗?
date2起什么作用?是说每个code,date1组只有固定的2条记录吗?
计算后的结果数据集大概能有多少条记录?
二维码

扫码加我 拉你入群

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

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

2010-9-27 22:07:49
我觉得SAS是做不出来的
二维码

扫码加我 拉你入群

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

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

2010-9-28 10:29:16
4# hopewell

原始数据集按code,date1排好序了吗?
没有进行排序,不过已经是group的。

date2起什么作用?是说每个code,date1组只有固定的2条记录吗?


date2是二级时间,在进行计算的时候实际上是没有用处的。
每个code,date1组有很多条记录,不固定。

计算后的结果数据集大概能有多少条记录?

总的数据有5千万,最后能剩下四分之一。(由于亿级数据处理不现实,所以拆分为7个文件,实际上总的数据有5千万*7)
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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