代码之家  ›  专栏  ›  技术社区  ›  Dan

SAS:在数据步骤中重新排列字段顺序

sas
  •  8
  • Dan  · 技术社区  · 16 年前

    在sas9中,如何在一个简单的数据步骤中重新排列字段的顺序。

    Data set2;
      /*Something probably goes here*/
      set set1;
    run;
    

    因此,如果set1有以下字段:

    Name   Title   Salary
    A      Chief   40000
    B      Chief   45000
    

    然后我可以将set2的字段顺序改为:

    Title  Salary  Name
    Chief  40000   A
    Chief  45000   B
    

    丹

    4 回复  |  直到 12 年前
        1
  •  10
  •   mcpeterson    16 年前

    一些快速的谷歌搜索给了我这个方法:

    data set2;
      retain title salary name;
      set set1;
      run;
    

    http://analytics.ncsu.edu/sesug/2002/PS12.pdf

        2
  •  5
  •   Robert Penridge    16 年前

    proc sql noprint;
      create table set2 as
      select title, salary, *
      from set1;
    quit;
    

    proc sql noprint;
      create view set2 as
      select title, *
      from set1;
    quit;
    
    ** OR;
    
    data set2 / view=set2;
      retain title salary name;
      set set1;
    run;
    

    抢劫

        3
  •  3
  •   user667489    14 年前

    您还可以使用informat语句来完成此操作—不需要指定任何informats。我怀疑这比等效的retain语句效率略高,因为它允许SAS将值初始化为missing,而不是从上一行检索它们。在实践中,这种差异是最小的,而且您还可以选择使用视图。

    data set2;
      informat title salary name;
      set set1;
    run;
    

    informat语句中指定的变量被移动到数据集的左侧并按顺序移动,其余的变量保持在输入数据集中的状态。

        4
  •  1
  •   Marcos Piau Vieira    7 年前

    您可以使用任何按您想要的顺序用变量初始化PDV的东西( 属性 , 格式 , , , 保留

    http://support.sas.com/kb/8/395.html

    推荐文章