【发布时间】:2015-05-06 13:26:44
【问题描述】:
我在将使用宏变量的数据集保存到所需目录时遇到问题。
基本上,我想根据 &var 和 &age 的值将数据集“_est”保存到库“sret”。我写了以下代码:
%let var=k;
%let age=2;
...
...
data sret.est_&var&age._b3;
set _est;
run;
我想要的是“sret”中名为“est_k2_b3.sas7bdat”的数据集。但是代码给我的是保存在我想要的文件夹中的数据集“est_k2.sas7bdat”和工作库中的另一个数据集“_b3”。两个数据集是相同的。我很困惑如何解决这个问题。
【问题讨论】:
-
这段代码看起来不错。你确定这个数据声明正是你使用的吗?你用的是什么操作系统?
-
你得到的行为表明在 &age 末尾有一个空格。你是在别处换吗?试试
%put "&age";,看看日志看看有没有空格。 -
@itzy 我使用的是 Windows 7 和 SAS9.3。
-
其实我之前已经成功解决过一次。但是现在拿不到了。我不知道这是否与我正在使用的宏有关。我有一个主宏,它调用其他 .sas 文件作为子例程,代码在子例程中。
-
之前我想在宏中直接包含这样的代码时也遇到过类似的问题。