我使用EG中的提示管理器创建了一个数字变量。
这个变量被称为HYr,是我提取的最高年份数据。
运行程序时,我会根据最高年份创建4个新变量,这就是我遇到问题的地方。
我有以下内容:
%Let Yr2 = &HYr. - 1;
%Let Yr3 = "&HYr." - 2;
%Let Yr4 = &HYr. - 3;
%Let Yr5 = '&HYr.' - 4;
我试图从年份中减去该值,新变量将用于确定正在提取的日期范围。我正在尝试几件事并在此过程中学习,但我仍然陷入困境。
我知道这可能只是一个简单的语法问题,如果有足够的时间我可能会得到它,但我办公室里的人没有比我更好的SAS技能,那也不多。
提前感谢。
答案 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.;