全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1436 1
2014-08-30
悬赏 20 个论坛币 已解决
求根据累计值分组,按照每个mark,对x累计求值,当累积和大于每个mark中x总和的0.3的时候,分组为0。当累积和大于每个mark中x总和的0.7的时候,分组为1。剩下的分组为2.
data temp;
input mark x ;
datalines;
1 5.8
1 5.5
1 5.3
1 4.8
1 4
1 3
1 2.5
1 2.4
1 2.3
1 2.2
2 4.7
2 4.3
2 3.6
2 5.0
2 5.6
2 5.1
2 3
2 2.5
2 2.4
2 2.3
;
run;

最佳答案

huangpengfei 查看完整内容

proc sql; create table temp1 as select mark,x,sum(x) as xsum from temp group by mark order by mark ; quit; data temp2; set temp1; by mark; retain y; if first.mark then y=x; else y+x; if y
二维码

扫码加我 拉你入群

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

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

全部回复
2014-8-30 21:05:03
proc sql;
        create table temp1 as
                select mark,x,sum(x) as xsum
                        from temp
                        group by mark
                        order by mark
        ;
quit;

data temp2;
        set temp1;
        by mark;
        retain y;
        if first.mark then y=x;
                else y+x;
        if y<xsum*0.3 then classify=0;
                else if y<xsum*0.7 then classify=1;
                else classify=2;
        drop y xsum;
run;

不知道是否是你要的结果?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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