【问题标题】:Creating SAS data set using multiple macro variables as values使用多个宏变量作为值创建 SAS 数据集
【发布时间】:2014-10-05 17:50:31
【问题描述】:

我有几个宏变量。例如,

%let var1 = GOOD;
%let var2 = BETTER;
%let var3 = BEST;

我想做的是使用像这样的这些宏变量创建一个数据集

数据集名称:分数 变量名:var

Obs   var
1     GOOD
2     BETTER
3     BEST

【问题讨论】:

    标签: macros sas


    【解决方案1】:

    试试这个:

    data want;
       format var $12.;
    
       var = "&var1";
       output;
    
       var="&var2";
       output;
    
       var="&var3";
       output;
    run;
    
    proc print data=want;
    run;
    

    【讨论】:

    • 谢谢!你能再简化一点吗?
    • 您希望它如何更简单?你想要 N vars 通用的东西吗?通常您不想从宏中获取值并将它们放入数据表中。
    【解决方案2】:

    如果您有命名约定,您可以查询 sashelp.vmacro 表:

    data _null_;
    set sashelp.class;
    call symput('name'||put(_n_, 2. -l), name);
    run;
    
    %put &name1.;
    %put &name19.;
    
    proc sql;
        create table want as
        select name, value
        from sashelp.vmacro
        where substr(name, 1, 4)='NAME';
    quit;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多