【SAS NOTES】脏数据

从明细文件着手做分析,最痛恨的就是脏数据导致分析出错。例如1月的数据格式是有6个字段,结果到6月就只剩5个字段,到了9月又产生了11个字段。即使是同一个字段,不同周期的数据格式也不一致,例如2012-8-19 12:16 到了九月就成了2012-8-19 12:16:08 数据格式的问题纠结很久。

所以说数据清洗很重要。

上次分析的代码因解决格式问题更新如下:

 1 data guanhui.buydetail;/*导入2012年莞惠网交易明细汇总*/
 2     infile 'E:\交易明细汇总.txt'  firstobs=2;
 3     input file & :$300. @@;
 4     serv_number=scan(file,1,'|');
 5     pay_way=scan(file,2,'|');
 6     fee_a=scan(file,3,'|');
 7     fee=input(fee_a,best.);
 8     pay_date=scan(file,4,'|');
 9     pay_month=scan(file,5,'|');
10     goods_name=scan(file,6,'|');
11     buy_date=scan(pay_date,1,' ');
12     buy_clock=scan(pay_date,2,' ');
13         buy_year=scan(buy_date,1,'-');
14         buy_month=scan(buy_date,2,'-');
15         buy_day=scan(buy_date,3,'-');
16         buy_hour=scan(buy_clock,1,':');
17         buy_minute=scan(buy_clock,2,':');
18     buy_time=DHMS(mdy(buy_month,buy_day,buy_year),buy_hour,buy_minute,0);
19 run;

方法是用一个变量读入每一行的所有值,然后用scan去区分不同字段,可以添加if判断,更精准。我直接省事情舍掉了对分析用处不大的秒字段以及交易细节字段。

原文地址:https://www.cnblogs.com/colipso/p/2886421.html