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'。
我正在研究下面的学习日宏,但它在日志中给出了一个错误 该程序是一个参考代码,因为我是临床 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'。