SAS PROC格式遵循什么字母数字排序方案?
我提供了一个基于 SAS使用什么订购标准或系统来确定此代码块末尾的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
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
“启动”=“