全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
8572 4
2013-04-10
原始数据:
员工        月份        月工作天数
A        1        20
A        2        22
A        3        23
A        4        25
B        1        15
B        2        20
B        3        24
B        4        18
希望结果:
员工        月份        月工作天数        月环比增长情况
A        1        20        .
A        2        22        2
A        3        23        1
A        4        25        2
B        1        15        .
B        2        20        5
B        3        24        4
B        4        18        -6


问题描述如下:
现需要计算员工月工作天数的环比增长情况,比如A员工2月份在1月份的基础上增加了2天,3月份在2月份的基础上增加了1天(由于数据量较大,只列举了两个员工),我采用lag函数做了,但是结果不正确:
data b;
    set a;
    d_days=days-lag(days);
run;
结果如下:
员工        月份        月工作天数        月环比增长情况
A        1        20        .
A        2        22        2
A        3        23        1
A        4        25        2
B        1        15        -10
B        2        20        5
B        3        24        4
B        4        18        -6

不明白问题出在哪,向各位大神求教了,谢谢!!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-4-10 16:37:42
data b;
    set a;
    by id;
    d_days=days-lag(days);
    if first.id then d_days=.;
run;
二维码

扫码加我 拉你入群

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

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

2013-4-10 16:38:40
补充下,现在用lag函数结果不正确之处在于没有区分员工,只是做到了此行-上一行的结果,而月环比增长情况是需要按员工做区分的,不知道如何去修改上面的程序了,望各位指教。
二维码

扫码加我 拉你入群

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

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

2013-4-10 17:55:36
路过
二维码

扫码加我 拉你入群

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

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

2013-4-10 19:17:26
pobel 发表于 2013-4-10 16:37
data b;
    set a;
    by id;
谢谢pobel 大牛~~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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