求解答:有一组每月数据,需要对原数据集进行加工,为了方便,希望利用时间月进行循环解决,自编程序如下:
%macro create_account_sheet(startmonth,endmonth);
%LET I=0;
%LET MONTH_ID=%SYSFUNC(PUT(%SYSFUNC(INTNX("MONTH","&STARTMONTH."D,&I.,"END")),DATE9.));
%DO WHILE ("&MONTH_ID."D<="&ENDMONTH."D);
DATA ACCOUNT_SHEET&MONTH_ID.;
SET HK.LON_D00P&MONTH_ID.;
FORMAT LOAN_NO $17. LOAN_BALANCE BEST12. FIRST_LOAN_DATE DATE9. DAY_ID DATE9.;
LOAN_NO=_COL0;
LOAN_BALANCE=_COL3;
FIRST_LOAN_DATE=MDY(SUBSTR(_COL6,5,2),SUBSTR(_COL6,7,2),SUBSTR(_COL,1,4));
DAY_ID=&MONTH_ID;
RUN;
%LET I=%EVAL(&I.+1);
%month_id=%SYSFUNC(PUT(%SYSFUNC(INTNX("MONTH","&STARTMONTH."D,&I.,"END")),DATE9.));
%end;
%mend;
%create_account_sheet(mdy(1,30,2016),mdy(6,30,2016));
日志提示intnx函数第二个参数不是数值,而且提示出现work.data01到work.data340等很多不应该出现的数据集。
求指导原因。 |