【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判断,更精准。我直接省事情舍掉了对分析用处不大的秒字段以及交易细节字段。