在 SAS 中连接宏变量以重命名列

Concatenate macro variables in SAS to rename a column

我有一些宏变量,我想将它们连接在一起以重命名 table 中的列。

%let input_group = state;
%let input_id = zip;

data output;
set output;
rename var1= catx(_, &input_id, &input_group, '1');
run;

在我的输出 table 中,我想将 var1 列重命名为 zip_state_1。是否可以在 SAS 数据步骤中执行此操作?如果我能像下面这样在 proc sql 步骤中执行此操作,那就更好了。

%let input_group = state;
%let input_id = zip;

proc sql;
create table output_2 as
select var1 as catx(_, &input_id, &input_group, '1')
from output_1;

谢谢!

不需要使用函数来连接宏变量的值。只需在您要在生成的代码中使用该值的位置扩展宏变量。

因此,如果您的宏变量值如下所示:

%let input_id = zip;
%let input_group = state;

然后你写这段代码:

&input_id._&input_group._1

结果会是

zip_state_1

注意使用 . 让宏处理器知道 _ 不是被 & 扩展的宏变量名称的一部分。