Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SAS PROC格式遵循什么字母数字排序方案?_Sas_Alphanumeric - Fatal编程技术网

SAS PROC格式遵循什么字母数字排序方案?

SAS PROC格式遵循什么字母数字排序方案?,sas,alphanumeric,Sas,Alphanumeric,我提供了一个基于 SAS使用什么订购标准或系统来确定此代码块末尾的PROC FREQ顺序 proc format lib=work; value $productfmt "Boot" = "<" "Men's Casual" = "!" "Women's Casual" = "A" "Men's Dress" = "B" "Women's

我提供了一个基于

SAS使用什么订购标准或系统来确定此代码块末尾的
PROC FREQ
顺序

 proc format lib=work;
    value $productfmt
           "Boot"           = "<"
           "Men's Casual"   = "!"
           "Women's Casual" = "A" 
           "Men's Dress"    = "B" 
           "Women's Dress"  = "5"
           "Sandal"         = "6" 
           "Slipper"        = "7" 
           "Sport Shoe"     = "08" ;    
QUIT;

data work.newshoes;
 set sashelp.shoes; /* the original data set */
     NEWPRODUCT = PRODUCT;

    format NEWPRODUCT $productfmt.;
run;

proc freq data=work.newshoes order=formatted;
    table NEWPRODUCT;
run;
proc format lib=work;
价值$productfmt

“Boot”=“与普通SAS字符排序或比较一样,它查看定义字符的底层数字代码。在Windows或Unix上,这是ASCII代码(在某些其他系统上,EBCDIC)。通常,数字比字母小,大写字母比小写字母小。可以在标准英文键盘上键入的大多数其他字符都位于字母之前,数字之前或之后(比较运算符和其他一些运算符位于数字之后,打印在数字顶部的字符位于数字之前,但@除外,但在我看来它似乎是随机的)。有关更多信息,请参阅

您可以使用
RANK
查看字符串中的第一个ASCII值(如果需要,您可以使用
SUBSTR
结合
RANK
来获取特定字符的值)。您还可以将其设置为$HEX。以查看整个字符串。在这里,我使用RANK来向您说明按这种方式排序的原因

proc format lib=work;
    value $productfmt
           "Boot"           = "<"
           "Men's Casual"   = "!"
           "Women's Casual" = "A" 
           "Men's Dress"    = "B" 
           "Women's Dress"  = "5"
           "Sandal"         = "6" 
           "Slipper"        = "7" 
           "Sport Shoe"     = "08" ;    
QUIT;

data work.newshoes;
 set sashelp.shoes; /* the original data set */
     NEWPRODUCT = PRODUCT;

    format NEWPRODUCT $productfmt.;
    ascii = rank(put(newproduct,$productfmt.));
run;

proc freq data=work.newshoes order=formatted;
    table NEWPRODUCT*ascii/list;
run;
proc format lib=work;
价值$productfmt
“启动”=“