楼主: 小鳄鱼a
1285 1

求根据累计值分组 [推广有奖]

  • 6关注
  • 10粉丝

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

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
关键词:Input Lines Mark Data Temp
沙发
huangpengfei 发表于 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;

不知道是否是你要的结果?

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 07:26