在 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
注意使用 .
让宏处理器知道 _
不是被 &
扩展的宏变量名称的一部分。
我有一些宏变量,我想将它们连接在一起以重命名 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
注意使用 .
让宏处理器知道 _
不是被 &
扩展的宏变量名称的一部分。