全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4104 17
2012-02-08
问题很简单,但是我retain用得不好,我需要两两相减。就是下面的数字减去上面的一个数字;
数据集是
data a;
input id $ realday spending;
datalines;
10000501 27 27.6
10000501 187 3.9
10000501 201 9.1
10000502 218 3.5
10000501 249 3.6
10000501 270 3.5
10000501 274 8.3
10000501 292 35.7
10000502 322 2.3
10000501 333 7.9
10000501 343 36
10000502 434 4.4
10000501 476 7.9
10000502 486 5
10000501 504 10.2
10000501 508 3.6
;
run;


---------------------------------
我的程序是
proc sort data=a out=b;by id realday;

data b;
retain start ;
set b;
by id realday;
if first.id and first.realday then start=realday;
else dif=realday-start;
run;


但是出来的结果是下面的数字减去第一个数字了。应该怎么解决呢???
二维码

扫码加我 拉你入群

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

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

全部回复
2012-2-8 13:24:33
问题虽弱,希望有人解惑呀
二维码

扫码加我 拉你入群

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

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

2012-2-8 13:34:23
请查看 dif 这个function,应该可以直接用
二维码

扫码加我 拉你入群

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

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

2012-2-8 13:38:58
zhangzachary 发表于 2012-2-8 13:34
请查看 dif 这个function,应该可以直接用
嗯,可以解决这个问题,那如果是用retain,我的程序问题在哪里呢?
二维码

扫码加我 拉你入群

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

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

2012-2-8 13:39:13
zhangzachary 发表于 2012-2-8 13:34
请查看 dif 这个function,应该可以直接用
不过dif的确好用!!
二维码

扫码加我 拉你入群

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

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

2012-2-8 13:43:00
zhangzachary 发表于 2012-2-8 13:34
请查看 dif 这个function,应该可以直接用
但是有个问题,我有几个不同的ID,那么不同的ID,用了DIF以后,不能分出不同的ID啊,比如我有1001,1002,那么DIF怎么有group的效果呢?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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