SAS:宏变量和字符串。正确的表名

时间:2012-05-14 11:51:07

标签: string macros dataset sas

这是宏的一部分:

  %let mvTableName = "MyTable";

  proc append base = &mvTableName data = TEMP_TABLE;
  run;

我在WORK中找不到表:\

之后我检查表的创建。

  data &mvTableName; 
  run;

请参阅日志:Dataset MyTable ...

但是当我改变字符串%let mvTableName=MyTable;

我看到此日志:Dataset WORK.MyTable ..

如何解释?

1 个答案:

答案 0 :(得分:3)

如果您打算使用mvTableName作为DATA =选项的输入,请不要包含双引号

假设MyTable和Temp_table是WORK库中的SAS数据集......这应该可行。

%Let mvTableName=MyTable;
Proc Append base=&mvTableName data=temp_table;
run;

此外,

Data &mvTableName;
Run;

创建一个空数据集...所以mvTableName将被空数据集覆盖。