在SAS中串联宏变量以重命名列
我有一些宏变量,我想连接在一起,以重命名表中的列在SAS中串联宏变量以重命名列,sas,concatenation,rename,sas-macro,proc-sql,Sas,Concatenation,Rename,Sas Macro,Proc Sql,我有一些宏变量,我想连接在一起,以重命名表中的列 %let input_group = state; %let input_id = zip; data output; set output; rename var1= catx(_, &input_id, &input_group, '1'); run; 在我的输出表中,我想将var1列重命名为zip_state_1。是否可以在SAS数据步骤中执行此操作?如果我能在下面的procsql步骤中完成这项工作,那就更好了 %let
%let input_group = state;
%let input_id = zip;
data output;
set output;
rename var1= catx(_, &input_id, &input_group, '1');
run;
在我的输出表中,我想将var1列重命名为zip_state_1。是否可以在SAS数据步骤中执行此操作?如果我能在下面的procsql步骤中完成这项工作,那就更好了
%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
注意使用。要让宏处理器知道u不是由&.展开的宏变量名称的一部分,无需使用函数连接宏变量的值。只需在要使用生成代码中的值的位置展开宏变量 因此,如果宏变量值如下所示:
%let input_id = zip;
%let input_group = state;
然后你写下这段代码:
&input_id._&input_group._1
结果将是
zip_state_1
注意使用。让宏处理器知道u不是由&展开的宏变量名称的一部分