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

SAS Proc数据集-使用宏变量更改数据集名称,sas,Sas,我想使用连接的宏变量更改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

我想使用连接的宏变量更改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


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

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

 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数据集需要退出才能终止。

围绕“bob”的引号也需要删除谢谢,已修复。