Debugging error:Required operator not found in expression

Debugging error:Required operator not found in expression

我正在研究下面的学习日宏,但它在日志中给出了一个错误 该程序是一个参考代码,因为我是临床 sas 的新手,我试图通过接受 3 个表中的 3 列来计算学习日来计算学习日......你能帮我解决这个......要求......谢谢

SYMBOLGEN: Macro variable ENDC resolves to aestdtc SYMBOLGEN: Macro variable ENDC resolves to aestdtc ERROR: Required operator not found in expression: length(&endc)=10 ERROR: The macro STDYDATES will stop executing.

请问谁能告诉我如何解决这个问题?

%macro stdydates(studyday=, endc=, refdate=);

%if &endc= '' %then &studyday=.;
 %else %do;
    %if length(&endc)=10 %then %do;
    %if input(substr(&endc,1,10),yymmdd10.) < input(substr(&refdate,1,10),yymmdd10.)
    %then &studyday=input(substr(&endc,1,10), yymmdd10.) -
    input(substr(&refdate,1,10), yymmdd10.);
    %else &studyday=input(substr(&endc,1,10), yymmdd10.) -
    input(substr(&refdate,1,10), yymmdd10.) + 1;
 %end;
 %else %if length(&endc)=8 %then %do;
    %if input(&endc, yymmdd8.)<input(substr(&refdate,1,10), yymmdd10.)
    %then &studyday=input(&endc, yymmdd8.) - input(substr(&refdate,1,10),yymmdd10.);
    %else &studyday=input(&endc, yymmdd8.) - input(substr(&refdate,1,10), yymmdd10.)+1;
 %end;
 %end;
%mend stdydates;
options mprint symbolgen;
%stdydates(studyday=ST,endc=aestdtc, refdate=rfstdtc);

Length 是一个宏函数,所以使用 '%length' 而不是 'length'。