1

在 SAS DIS 中,我在工作中设置了日期参数。我尝试使用提供的下拉菜单设置默认值,但每次我收到错误

语法错误,应为以下之一:!、!!、&、*、**、+、-、/、<、<=、<>、=、>、><、>=、AND、EQ、GE , GT, IN, LE, LT, MAX, MIN, NE, NG, NL, NOTIN, OR, ^=, |, ||, ~=.

因此,我决定在继续之前尝试检查参数是否为空,但我的各种尝试都没有成功。有没有办法用用户编写的代码来做到这一点?就像是

if(&date_param = .) then do;
date = today();
else do;
date = &date_param;
end;

我在宏中尝试过,但没有成功。

非常感谢。

4

1 回答 1

2

假设这类似于标准 SAS 宏变量,有几件事。

首先,空参数实际上是空白的,而不是句点(用于数字数据集变量)。在数据步骤中,您可以像这样检查它:

if "&date_param." = " " then do;

其次,根据上下文,您可能需要在宏语法中执行此操作。如果您正在设置另一个参数,您可能需要执行以下操作:

%if &date_param. eq  %then %do;
  %let date=%sysfunc(today());
%end;
%else %do;
  %let date = &date_param.;
%end;

%sysfunc允许您在宏代码中执行数据步进函数。

于 2015-06-02T18:05:49.100 回答