全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1371 3
2016-08-07
悬赏 50 个论坛币 已解决
我有如下示意数据,一列是客户姓名,一列是交易日期,一列是订单号码,一列是该订单单号的状态(交易成功/交易失败)。一个客户可以一天提交多个订单。数据已经完全排序:按照客户名称,订单日期,和订单号码由新到老排序。我想用SAS加上两列:(1)在收到当前订单之前的30天内,该客户已经成功的次数(2) 在收到当前订单之前的30天内,该客户交易失败的次数。

姓名        日期                订单        状态
张天        5月4号        129        成功
张天        5月4号        128        失败
张天        5月4号        127        成功
张天        5月1号        126        成功
张天        5月1号        125        失败
张天        4月1号        124        成功
王玉        2月25号        123        失败
常发        1月31号        122        成功


举例说明我到底是要什么:
第一行,在收到129号订单之前的30天内,张天已经有2次成功(126号,127号)和2次失败(125号,128号)。
第二行,在收到128号订单之前的30天内,张天已经有2次成功(126号,127号)和1次失败(125号).


为简单起见,只列出了几行,实际的数据包括好多好多行啊。如果没有表述清楚,请尽可按照自己的理解来写SAS代码。多谢!!!!!

最佳答案

wwang111 查看完整内容

我把你的原始数据稍微改了一下,日期加上了年,要不然跨年的就没法计算了,我假定了这些日期都是2016年的,你看一下有什么问题: data test; input name : $15. date : mmddyy10. indent status $; format date yymmdd10.; cards; Zhangtian 05/04/2016 129 Success Zhangtian 05/04/2016 128 Fail Zhangtian 05/04/2016 127 Success Zhangtian ...
二维码

扫码加我 拉你入群

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

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

全部回复
2016-8-7 11:52:01
我把你的原始数据稍微改了一下,日期加上了年,要不然跨年的就没法计算了,我假定了这些日期都是2016年的,你看一下有什么问题:

data test;
input name : $15. date : mmddyy10. indent status $;
format date yymmdd10.;
cards;
Zhangtian        05/04/2016        129        Success
Zhangtian        05/04/2016        128        Fail
Zhangtian        05/04/2016        127        Success
Zhangtian        05/01/2016        126        Success
Zhangtian        05/01/2016        125        Fail
Zhangtian        04/01/2016        124        Success
Wangyu           02/25/2016        123        Fail
Changfa          01/31/2016        122        Success
;

data wanted;
set test;
su_time=0;
fa_time=0;
do i=1 to nobs;
  set test(rename=(name=_name date=_date indent=_indent status=_status)) nobs=nobs point=i;
  if name=_name and _date>=date-30 and indent>_indent then do;
   if _status="Success" then su_time+1;
   else if _status="Fail" then fa_time+1;
  end;
end;
drop _:;
run;

二维码

扫码加我 拉你入群

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

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

2016-8-7 12:50:47
这是一点背景资料:一个企业他有很多客户,如果有一个订单失败了,那么企业想看看,在收到这个订单之前的一个月内,这个客户下了多少订单,多少成功了,多少失败了,如果之前订单大多成功了,那么这个企业就会下大精力研究一下,为什们当前的这个订单竟会失败。注意,一个客户可能在一天内下多个单子,也可能在几个月都不下一个单子。
二维码

扫码加我 拉你入群

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

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

2016-8-7 16:10:12
proc sql可以处理
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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