在 SAS 中有条件地打印标题?

Conditionally print titles in SAS?

我想为通过我的宏的不同变量显示不同的标题。

%macro mplot(dsn,vn);
title1 'hey!';
%if "&vn"="" %then title2 "Ooos" justify=left;
%else title2 "Ooos &vn" justify=left;
title3 "this line";
%mend mplot;

%mplot(_avg);
%mplot(_avgs1,s1);

理想的标题是:

hey!
Ooos
this line

hey!
Ooos s1
this line

但是输出是

hey!
Ooos
title3 this line

hey!
Ooos s1
title3 this line

我在后面加一个分号就解决了

%macro mplot(dsn,vn);
title1 'hey!';
%if "&vn"="" %then title2 "Ooos" justify=left;
%else title2 "Ooos &vn" justify=left;;
title3 "this line";
%mend mplot;

但是我不明白为什么需要一个额外的分号。