楼主: xulimei1986
921 4

求助sas 程序? [推广有奖]

  • 3关注
  • 0粉丝

博士生

68%

还不是VIP/贵宾

-

威望
0
论坛币
41 个
通用积分
0
学术水平
3 点
热心指数
8 点
信用等级
3 点
经验
22590 点
帖子
138
精华
0
在线时间
439 小时
注册时间
2012-3-20
最后登录
2019-5-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
原始数据:
姓名 日期 状态
张三 2012/10/17 未成功
张三 2012/10/10 电话成功
李四 2012/11/12 未成功
李四 2012/11/5 电话成功
李四 2012/11/10 短信成功
王五 2012/10/20 未成功
王五 2012/11/12 短信成功
期望结果:   
姓名 日期 状态
张三 2012/10/10 电话成功
李四 2012/11/10 短信成功
王五 2012/11/12 短信成功

就是先按照姓名和日期排序(均是升序),如果该姓名下的最后一条记录的状态是短信成功或者是电话成功,结果中该姓名的最后一条记录,如果最后一条记录的状态是未成功,则取该姓名下最近日期的短信成功或者是电话成功的记录!
二维码

扫码加我 拉你入群

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

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

关键词:原始数据 程序

家家有本难念的经,计较的少一点,会和睦许多!!
沙发
webgu 发表于 2012-12-29 15:49:35 |只看作者 |坛友微信交流群
  1. data demo;
  2. input name $  date yymmdd10.  status $;
  3. datalines;
  4. 张三 2012/10/17 未成功
  5. 张三 2012/10/10 电话成功
  6. 张三 2012/10/11 未成功
  7. 李四 2012/11/12 未成功
  8. 李四 2012/11/5 电话成功
  9. 李四 2012/11/10 短信成功
  10. 王五 2012/10/20 未成功
  11. 王五 2012/11/12 短信成功
  12. 王五 2012/11/12 未成功
  13. 麻六六 2012/10/20 未成功
  14. 麻六六 2012/11/12 短信成功
  15. 麻六六 2012/11/12 未成功
  16. ;
  17. run;

  18. proc sort data=demo(where=(status^="未成功")) out=tmp;
  19.         by name date ;
  20. run;

  21. data want;
  22.   set tmp;
  23.   by name;
  24. if last.name;
  25. run;
复制代码
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

藤椅
xulimei1986 发表于 2012-12-29 15:57:13 |只看作者 |坛友微信交流群
webgu 发表于 2012-12-29 15:49
不好意思,是我意思未表达清楚,如果还有一种类型的记录,姓名不同只有一条记录,不管什么状态,最后的结果中都会显示这条记录,再帮忙解答下,谢谢~~
家家有本难念的经,计较的少一点,会和睦许多!!

使用道具

板凳
xulimei1986 发表于 2012-12-29 16:15:37 |只看作者 |坛友微信交流群
webgu 发表于 2012-12-29 15:49
补充:还有一点就是,如果像你的数据中麻六六没有短信成功只有两天未成功的记录,这时候要取2010/10/20的那条记录,同样是在你补充的那个数据集上,请指教!!
家家有本难念的经,计较的少一点,会和睦许多!!

使用道具

报纸
webgu 发表于 2012-12-29 16:33:46 |只看作者 |坛友微信交流群
  1. data demo;
  2. input name $  date yymmdd10.  status $;
  3. datalines;
  4. 张三 2012/10/17 未成功
  5. 张三 2012/10/10 电话成功
  6. 张三 2012/10/11 未成功
  7. 李四 2012/11/12 未成功
  8. 李四 2012/11/5 电话成功
  9. 李四 2012/11/10 短信成功
  10. 王五 2012/10/20 未成功
  11. 王五 2012/11/12 短信成功
  12. 王五 2012/11/12 未成功
  13. 麻六六 2012/10/20 未成功
  14. 麻六六 2012/11/12 短信成功
  15. 麻六六 2012/11/12 未成功
  16. ;
  17. run;

  18.    
  19. data
  20. proc sort data=demo(where=(status^="未成功")) out=tmp;
  21.         by name date ;
  22. run;

  23. data want;
  24.   set tmp;
  25.   by name;
  26. if last.name;
  27. run;

  28. proc sql;
  29.    create table sole as
  30.    select  *
  31.    from demo
  32.    group by name
  33.    having count(name)=1  ;
  34. quit;

  35. data ok;
  36.   set want sole;
  37. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
xulimei1986 + 1 + 1 + 1 热心的帮助解决了问题!!

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

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

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

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

GMT+8, 2024-5-27 20:03