数据分析师 - Week13

2018-01-07  本文已影响8人  梁脚毛

SAS技术

  1. 导入中文的txt数据集
*endocing选项可以让系统用指定的格式来编码文件;
filename my_file "/Users/PyProjects/kaggle/titanic.txt" encoding="utf-8";

*procedure过程中可以对数据集做处理, 保留想要的字段并且改名;
proc import datafile=my_file out=my_data(rename=(varo=id) keep=var0 -- var2) 
  replace dbms=dlm;
  delimiter="|";
  getnames=yes;
  guessingrows=23333;
run;
  1. 把大表分开处理,减少服务器的资源消耗。
在信用卡中心可以获得大量的交易数据,然而每个月的交易数据表都异常的大。
虽然本人在一家小银行的信用卡中心工作,但是一个月的交易信息表都是千万级以上的数据。
因此,如果需要过去一年多的交易数据,应该按月分开处理,然后再做汇总合并。
%macro test();
  %do i=2016 to 2018;
    %do j=1 to 12;
      %let yyyymm=i*100+j;
      %if &yyyymm.<=201801 and &yyyymm.>=201609 %then %do; *限定需要获取数据的时间;
        data events_&yyyymm.;
          set lib.events_&yyyymm.(keep=var0--var10);
          length ratio 8.;
          if var10 ^= 0 then ratio=var9/var10;
          else ratio=.;
        run;
        
        proc sql noprint;
          create events_temp_&yyyymm. as 
          select *
          from events_&yyyymm.
          where var0 in (select id from lib.test); *若lib.test很大,最合理应该使用merge;
        quit;
      %end;
    %end;
  %end;

  data events_all;
    set events_temp_:; *汇总全部处理过的交易表;
  run;
%mend test;
上一篇下一篇

猜你喜欢

热点阅读