全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1198 4
2013-03-11
现在有一组数据,包括:卡号 、还款时间 、还款金额。 其中同一 卡号会在不同日期有多笔还款,  且同一日期会有多笔还款。
现在想将还款日期最晚的那笔记录找出来,该如何编程呢?如果用last. 的话,只能把同一日期的最后一笔交易找出来,而不是最晚日期的交易。

请高手指教!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-11 18:59:08
analyst模块里面的过滤——取数据子集,可以找出来吧,程序不晓得咯。。。。
二维码

扫码加我 拉你入群

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

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

2013-3-11 19:10:17
data test;
        input cardnum date yymmdd8.  money;
        format date yymmdd10.;
cards;
1 19880305 50
1 19880305 60
1 19880305 70
1 19880306 80
1 19880306 60
1 19880307 70
1 19880307 80
2 19880405 50
2 19880405 60
2 19880405 70
2 19880406 80
2 19880406 60
2 19880407 70
2 19880407 80
;
run;
proc sort data=test;
        by cardnum date;
run;
data want;
        set test;
        by cardnum date ;
        if last.cardnum;
run;
二维码

扫码加我 拉你入群

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

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

2013-3-13 08:52:48
lllyyy! 发表于 2013-3-11 19:10
data test;
        input cardnum date yymmdd8.  money;
        format date yymmdd10.;
多谢指教!原来我用 last.date,出来的结果不是自己想要的,没想到换一个就ok了,呵呵,谢谢了
二维码

扫码加我 拉你入群

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

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

2013-3-14 12:43:14
用 last.卡号 不是一样只能选出一条交易来吗?这样应该可以:

data test;
        input cardnum date yymmdd8.  money;
        format date yymmdd10.;
cards;
1 19880305 50
1 19880305 60
1 19880305 70
1 19880306 80
1 19880306 60
1 19880307 70
1 19880307 80
2 19880405 50
2 19880405 60
2 19880405 70
2 19880406 80
2 19880406 60
2 19880407 70
2 19880407 80
;
run;
proc sort data=test;
        by cardnum date;
run;
data date;
        set test;
        by cardnum date ;
        if last.cardnum;
                keep date;
run;
data want;
        merge test(in=t) date(in=d);
        if t and d;
        by date;
run;
proc print;run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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