在SAS中按手动排序对列进行排序

时间:2014-11-04 04:35:09

标签: sorting sas

数据have

Game  col2 col3 col4 ..

ABC
AZA
CGG
EDD

我需要按HAVE排序数据Game。但对于输出数据集WANT,顺序应始终为

Game  col2 col3 col4 ..

AZA
ABC
EDD
CGG

如何在SAS中实现这一目标?此外,所需的订单存储在外部文件中。如果所需的订单发生变化,我需要调整我的代码。所以我想要一种有效的方法来做到这一点。

1 个答案:

答案 0 :(得分:2)

您可以按照以下内容创建信息,并对结果值进行排序。

PROC FORMAT;
INVALUE SEX
'AZA' = 1
'ABC' = 2
'EDD' = 3
'CGG' = 4
;
RUN;

DATA HAVE;
TEST = "CGG";
OUTPUT;
TEST = "EDD";
OUTPUT;
TEST = "AZA";
OUTPUT;
RUN;

DATA WANT;
    SET HAVE;
    TEST2 = INPUT(TEST,SEX.);
RUN;

PROC SORT DATA = WANT;
BY TEST2;
RUN;