SAS Proc Datasets - 使用宏变量更改数据集名称

Posted

技术标签:

【中文标题】SAS Proc Datasets - 使用宏变量更改数据集名称【英文标题】:SAS Proc Datasets - Change dataset name using macro variable 【发布时间】:2017-08-15 15:21:11 【问题描述】:

我想使用串联的宏变量更改 SAS 中的数据集名称。使用下面的示例代码我得到一个错误。我的语法是错误的还是不能以这种方式使用连接函数?

代码:

 %let term=201610;
 %let emp='bob';

 Proc Datasets library=work;
 change testset = cat(&emp,&term);
 run;

收到的错误:

错误 22-322:语法错误,应为以下之一:ALTER、MEMTYPE、MT、MTYPE、PROTECT、PW、READ、WRITE。

ERROR 76-322:语法错误,语句将被忽略。

【问题讨论】:

【参考方案1】:

您不需要连接宏变量,这就像查找和替换文本。 因为您现在有引号,所以会发生这种情况:

 change testset = cat('bob', 201610)

但是 CAT 函数在那里无效。从技术上讲,您可以使用 %SYSFUNC() 来使用 CAT 函数,但有一种更简单的方法。

 %let term=201610;
 %let emp='bob';

 Proc Datasets library=work;
 change testset = &emp&term.;
 run;quit;

请注意,PROC DATASETS 需要 QUIT 才能终止。

【讨论】:

'bob' 周围的引号也需要删除 谢谢,已修复。

以上是关于SAS Proc Datasets - 使用宏变量更改数据集名称的主要内容,如果未能解决你的问题,请参考以下文章

SAS PROC SQL SELECT INTO 宏创建的动态范围

SAS:使用宏格式化多个proc频率

T:SAS/ Proc SQL - 选择进入:不在:

SAS的proc model语句应该怎么用

sas怎么定义一个宏变量求n项和

使用文件中的代码作为 SAS 宏变量的内容