【问题标题】:Trying to create new dataset using macro sas尝试使用宏 sas 创建新数据集
【发布时间】:2015-06-22 18:52:12
【问题描述】:

我有以下代码:

              %macro One (Data=, City=);
                 data &data; 
                 set Dataset1;
                 Var_new=.;
                 if State = "CA" and CITYCODE = &City then output;  
                 run;
              %mend One;
              %One (Data=Bakersfield_CA,  City=12540);
              %One (Data=Chico_CA         City=17020);

我得到了 Bakersfield_CA 的第一个数据集..但是第二次运行宏时我得到错误并且我没有得到任何名为“CHico_CA”的数据集。

【问题讨论】:

    标签: sas sas-macro


    【解决方案1】:

    您在第二次宏调用中缺少逗号。试试

    %One (Data=Bakersfield_CA,  City=12540);
    %One (Data=Chico_CA,         City=17020);
    

    不过,一般而言,创建大量这样的小数据集是个坏主意,因为它会使您的代码变得比必要的复杂得多。你想为每个城市做些什么?您可以使用按组处理对原始 dataset1 执行相同的操作。

    【讨论】:

    • 谢谢..我会试试看。我正在尝试为每个城市创建一个单独的数据集,因为我将使用带有 ODS 的不同数据集将某些信息输出到 excel 中。
    • 您可能仍然不需要为每个城市使用单独的数据集。例如,您可以编写 ODS 代码,每次读取相同的数据集但使用不同的where 条件。
    • 你能举个例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多