汉字在SAS中是按照什么排序?

分类: Office365版本 📅 2025-09-29 04:31:23 👤 admin 👁️ 8665 ❤️ 828
汉字在SAS中是按照什么排序?

在写table的时候,在编程备注的时候,有时候会有这样一种要求:

频率好理解,例次可以简单地理解为各个受试者在数据集中出现的条数(包括重复的)。

如果例次相同按照字母排序,不管是数字还是英文,排序好理解,数字排序按照从小到大,英文字母按照ASCII码,即A-Z,a-z的顺序从小到大排序,但是中文是按照什么排序呢?拿下图中的举例

红框部分是“系统器官类别”,先按这个排序,col2代表例次,“肝胆系统疾病”例次是2,排在第一位没什么问题。

但是接下来的红框,例次都一样,而且“全身”,“各类”,“葡萄”按照我们的中文拼音排序的话好像也不对啊!所以可以肯定的是SAS对中文排序肯定不是按拼音排序的!

但是具体是按照什么排序的?我没有在网上搜到(网上关于SAS的知识真是太陈旧了,大多数都是2015年以前的),在SAS官网也没有找到,可能是我写的关键词不准确。

中文编码一般是按照GBK标准,在java中是称作GBK,但是在SAS中是叫做ECU-CN,所以我想是不是按照GBK标准排序。要记住各个汉字的GBK编码是不可能的,我找了一个网站,输入汉字就能输出对应的GBK编码和Unicode编码,我们把“全,各,葡,血”输入进去看看。

全:

各:

葡:

血:

可以看到“各”的编码小于“全”,但是它却排在全的后面,所以不是按照GBK编码排序,但是看Unicode编码,发现确实按照从小到大排序,所以可以知道中文是按照Unicode编码排序。

但是,我又在想是不是因为我用的是英文服务器,也就是Unicode服务器,所以才这样排?于是我又将SAS调整为中文服务器,也就是ECU-CN,结果确实跟你选择的服务器有关!

看到排序跟英文环境下的完全不一样,除了例次为2的还是排在第一位,其他的都换了位置,我看了一下,这时候就是完全按照GBK编码从小到大的顺序排列。

所以可以得出一个结论:中文字符排序,首先跟你选择的服务器有关,英文的就是按照Unicode编码排序,中文的就是按照GBK编码排序,不管哪一种,都不是按照中文拼音顺序排序!

上面两种情况都不能直接通过肉眼判断,要判断你做的对不对,只能通过去网站搜一下对应的编码看看是不是按照要求的顺序排列,这里只是提供一个澄清说明。

-------------------------------------------------------

转眼3天就过去一天半了,感觉时间过的是越来越快了!也没有去哪玩,就呆在房间里,还想着工作几个小时,但是总是拖延。

习惯在过节的时候买点好菜犒劳一下自己,结果星期五的时候吃多了,还都是肉,结果昨天消化不良,一直打臭嗝,胀气放臭屁,今天凌晨起床上厕所,蹿稀拉肚子,哈哈,还是不要暴饮暴食。

相关文章