SAS技术
- 导入中文的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;
- 把大表分开处理,减少服务器的资源消耗。
在信用卡中心可以获得大量的交易数据,然而每个月的交易数据表都异常的大。
虽然本人在一家小银行的信用卡中心工作,但是一个月的交易信息表都是千万级以上的数据。
因此,如果需要过去一年多的交易数据,应该按月分开处理,然后再做汇总合并。
%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;