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

Dan*_*Dan 8 sas

在SAS 9中,我如何在简单的数据步骤中重新排列字段的顺序.

Data set2;
  /*Something probably goes here*/
  set set1;
run;
Run Code Online (Sandbox Code Playgroud)

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

Name   Title   Salary
A      Chief   40000
B      Chief   45000
Run Code Online (Sandbox Code Playgroud)

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

Title  Salary  Name
Chief  40000   A
Chief  45000   B
Run Code Online (Sandbox Code Playgroud)

谢谢,

mcp*_*son 9

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

data set2;
  retain title salary name;
  set set1;
  run;
Run Code Online (Sandbox Code Playgroud)

从这里:http: //analytics.ncsu.edu/sesug/2002/PS12.pdf


Rob*_*dge 5

如果数据集中有大量变量,有时使用sql语句而不是datastep会更容易.这允许您仅列出您关注其顺序的变量,并使用通配符保留其他所有内容.

proc sql noprint;
  create table set2 as
  select title, salary, *
  from set1;
quit;
Run Code Online (Sandbox Code Playgroud)

如果您使用大型表执行此操作,则可以通过创建视图来节省IO开销.这可以应用于数据集方法或proc sql方法.

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

** OR;

data set2 / view=set2;
  retain title salary name;
  set set1;
run;
Run Code Online (Sandbox Code Playgroud)

干杯罗布