【问题标题】:Concatenate macro variables in SAS to rename a column连接 SAS 中的宏变量以重命名列
【发布时间】:2020-12-30 22:16:40
【问题描述】:

我想将一些宏变量连接在一起以重命名表中的列。

%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 数据步中执行此操作?如果我可以在下面的 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;

谢谢!

【问题讨论】:

    标签: sas concatenation rename sas-macro proc-sql


    【解决方案1】:

    无需使用函数来连接宏变量的值。只需将宏变量展开到您要在生成的代码中使用值的位置。

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

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

    而你编写了这段代码:

    &input_id._&input_group._1
    

    结果是

    zip_state_1
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 2019-12-01
      • 1970-01-01
      相关资源
      最近更新 更多