楼主: fisheryou
1405 3

[有偿编程] 求每一个ID对销户日期 [推广有奖]

  • 1关注
  • 2粉丝

已卖:103份资源

副教授

9%

还不是VIP/贵宾

-

威望
0
论坛币
7591 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
42160 点
帖子
217
精华
0
在线时间
1209 小时
注册时间
2010-5-5
最后登录
2021-8-12

楼主
fisheryou 发表于 2012-11-9 10:38:50 |AI写论文
30论坛币
test表中有三列,分别为custid、date、status,具体数据见下表,其中status中,1为销户状态,0为开户状态,要求如下:1. 找出每一个custid的销户日期
2. 如果没有销户,显示最大date的观察信息



custiddatestatus

1

2011/10/9

1

1

2011/10/10

1

1

2011/10/11

1

1

2011/10/12

1

1

2011/10/13

1

1

2011/10/14

1

1

2011/10/15

1

1

2011/10/16

1

1

2011/10/17

1

1

2011/10/18

1

1

2011/10/19

1

1

2011/10/20

1

1

2011/10/21

1

1

2011/10/22

1

2

2011/10/23

0

2

2011/10/24

0

2

2011/10/25

0

2

2011/10/26

0

2

2011/10/27

0

2

2011/10/28

1

2

2011/10/29

1

2

2011/10/30

1

2

2011/10/31

1

2

2011/11/1

1


追加一下奖赏,要求用data step完成,如果是proc sort的话,就免了。

关键词:Data step status estat Dates date status 信息

沙发
zkymath 在职认证  发表于 2012-11-9 13:40:01
数据按客户ID顺序排列还是随机排列的? 这个很关键

藤椅
紫血丹心 在职认证  发表于 2012-11-9 18:08:27 来自手机
按id,statue,date降序排序,注意字段排序的先后顺序。最后output id.first
拼搏

板凳
文--所未闻 发表于 2012-12-1 15:19:52
/*本程序基于数据顺序排列,账户最初缺省值为开户*/
proc import datafile='e:\text.xls' out=text replace;
run;
data text(drop=a b c);
retain a 0 b 1 c;
set text;
if         custid-b and a=0 then do;
if status then output;
status=a;
date=c;
custid=b;
output;        /*没有销户,显示最大date的观察信息*/
end;
if custid=b and status-a=1 then output;        /*输出销户日期*/
a=status;
b=custid;
c=date;
format date yymmdd10.;
run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-6 03:22