计算中使用的提示或宏变量

时间:2018-04-27 14:53:29

标签: sas sas-macro

我使用EG中​​的提示管理器创建了一个数字变量。

这个变量被称为HYr,是我提取的最高年份数据。

运行程序时,我会根据最高年份创建4个新变量,这就是我遇到问题的地方。

我有以下内容:

%Let Yr2 = &HYr. - 1;

%Let Yr3 = "&HYr." - 2;

%Let Yr4 = &HYr. - 3;

%Let Yr5 = '&HYr.' - 4;

我试图从年份中减去该值,新变量将用于确定正在提取的日期范围。我正在尝试几件事并在此过程中学习,但我仍然陷入困境。

我知道这可能只是一个简单的语法问题,如果有足够的时间我可能会得到它,但我办公室里的人没有比我更好的SAS技能,那也不多。

提前感谢。

1 个答案:

答案 0 :(得分:4)

使用%EVAL()对整数和宏变量进行计算。

%let HYR = 2018;
%Let Yr2 = %eval(&HYr. - 1);
%Let Yr5 = %eval(&HYr. - 4);

%put HYR: &hyr;
%put YR2: &yr2.;
%put YR5: &yr5.;

编辑:如果您尝试进行包含小数的其他计算,则需要使用%SYSEVALF

%let HYR = 2018;
%Let Yr2 = %sysevalf(&HYr. - 0.1);
%Let Yr5 = %sysevalf(&HYr. - 0.4);

%put HYR: &hyr;
%put YR2: &yr2.;
%put YR5: &yr5.;