SAS数据转换

SAS数据转换,sas,Sas,有人可以帮助将此过程SQL代码转换为数据步骤吗?我希望数据步骤会快得多。我从SAS-EG生成了这段代码,所以我还不够精通 谢谢 杰夫 groupby和SUM的功能可以在proc summary中找到,也可以在simlar中找到,但更丰富的proc means。不幸的是,我没有可用的SAS许可证,因此无法向您提供代码。在proc-means中查找您的问题已解决的示例 使用按var1、var2、var3、var4分组时,该过程将生成var1、var2、var3和var4的不同值组合。但是,关键字D

有人可以帮助将此过程SQL代码转换为数据步骤吗?我希望数据步骤会快得多。我从SAS-EG生成了这段代码,所以我还不够精通

谢谢 杰夫

  • groupby
    SUM
    的功能可以在
    proc summary
    中找到,也可以在simlar中找到,但更丰富的
    proc means
    。不幸的是,我没有可用的SAS许可证,因此无法向您提供代码。在
    proc-means
    中查找您的问题已解决的示例
  • 使用
    按var1、var2、var3、var4分组时,该过程将生成var1、var2、var3和var4的不同值组合。但是,关键字
    DISTINCT
    是不必要的
  • 性能可能会受到数据所在位置与运行查询位置的影响。如果查询位于外部数据库(如Oracle)中,您可能会受益于所谓的“传递功能”。这允许SAS代码直接在数据库中运行,并利用其索引、统计信息和使数据库功能强大的所有数据库功能
      • groupby
        SUM
        的功能可以在
        proc summary
        中找到,也可以在simlar中找到,但更丰富的
        proc means
        。不幸的是,我没有可用的SAS许可证,因此无法向您提供代码。在
        proc-means
        中查找您的问题已解决的示例
      • 使用
        按var1、var2、var3、var4分组时,该过程将生成var1、var2、var3和var4的不同值组合。但是,关键字
        DISTINCT
        是不必要的
      • 性能可能会受到数据所在位置与运行查询位置的影响。如果查询位于外部数据库(如Oracle)中,您可能会受益于所谓的“传递功能”。这允许SAS代码直接在数据库中运行,并利用其索引、统计信息和使数据库功能强大的所有数据库功能
          我建议改用PROC方法。如果没有样本数据,我无法确定这正是您想要的,但应该可以让您接近:

            proc means data=APLSWP.vw_aplmlwk_fact_nat_nc_uns noprint nway;
            *CLASS = grouping variables;
            class outletfamily itemid itemnumberunsuppressed ppmonth;
            *VAR = list of variables to analyze (optional);
            var totalValue UnitSold Proj_Total_value proj_unitssold;
            *create output data set;
            output out=want 
              /*list of summary statistics to save*/
              sum(totalValue) = dollars 
              sum(UnitSold) = units 
              sum(Proj_Total_value) = 'Proj Dollars'n 
              sum(proj_unitssold) = 'Proj Units'n;
            run;
          

          我建议改用PROC方法。如果没有样本数据,我无法确定这正是您想要的,但应该可以让您接近:

            proc means data=APLSWP.vw_aplmlwk_fact_nat_nc_uns noprint nway;
            *CLASS = grouping variables;
            class outletfamily itemid itemnumberunsuppressed ppmonth;
            *VAR = list of variables to analyze (optional);
            var totalValue UnitSold Proj_Total_value proj_unitssold;
            *create output data set;
            output out=want 
              /*list of summary statistics to save*/
              sum(totalValue) = dollars 
              sum(UnitSold) = units 
              sum(Proj_Total_value) = 'Proj Dollars'n 
              sum(proj_unitssold) = 'Proj Units'n;
            run;
          

          只有在数据已排序的情况下,数据步骤才能对项目进行分组。是这样吗?我能把你的问题翻译成“有没有比SQL更快的传统SAS编程技术?”Jeff,我建议你用另一个标题来回答这个问题:将SQL语句重写为SAS过程,同时寻求更好的性能与“SAS数据转换”没有多大关系。更合适的标题可能会吸引更多的读者。定义
          APLSWP
          的库语句是什么?只有在数据已经排序的情况下,数据步骤才能对项目进行分组。是这样吗?我能把你的问题翻译成“有没有比SQL更快的传统SAS编程技术?”Jeff,我建议你用另一个标题来回答这个问题:将SQL语句重写为SAS过程,同时寻求更好的性能与“SAS数据转换”没有多大关系。一个更合适的标题可能会吸引更多的读者。定义
          APLSWP
          的图书馆声明是什么?您可以通过SAS Academics on Demand(SAS Academics on Demand)访问SAS-独立学习者,无需加入学术界,唯一的限制是没有商业用途。它完全托管在云上,因此基本上只需要在您想要访问它时登录。您可以通过SAS Academy on Demand(SAS Academy on Demand-Independent learner)访问SAS,无需加入Academy,唯一的限制是没有商业用途。它完全托管在云上,因此基本上只需要在您想要访问它时登录;您可以使用
          FORMAT
          子句进一步显示以$或逗号作为十进制分隔符的值;您可以使用
          FORMAT
          子句进一步显示以$或逗号作为十进制分隔符的值。