0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SAS:字符型变量的两种排序方式

冬至子 来源:小高的SAS学习笔记 作者:xiao'gao 2023-05-19 10:41 次阅读

(1)字符型变量按照拼音首字母排序

在做AE一类的table时,经常会有要求,需要我们先按照例次降序排序,如果例次相同按照SOC拼音首字母排序,例次降序排好理解,但是怎样才能实现对字符型变量按照拼音排序呢?用一个例子来让大家理解:

/ 测试数据集 /

data test;

set order;

count_c=put(count,best.);

run;

/ 结果如下: /

图片

通常我们在处理此类问题时会想到用proc sort来对其进行排序

proc sort data=test out =test1 ;

by descending count soc;

run;

/ 结果如下: /

图片

红框部分“肝胆系统疾病”的例次为2,排在“各种先天性家族性遗传性疾病”的前面似乎没什么问题,但是接下来的两个红框的例次都为1,此时应按照SOC拼音首字母排序,但是“各“的首字母应在”耳“的的后面,但是却排在了前面,所以可以肯定的是用上述程序想要对SOC按拼音排序肯定是行不通的!

/ 解决方案如下: /

proc sort data=test out =test1 sortseq=linguistic(locale=zh_CN collation=PINYIN);

by descending count soc;

run;

其实方法很简单,用sort过程步里面的选项linguistic(locale=zh_CN collation=PINYIN);就可以实现了,大家可以试一下。得到的数据集如下。

图片

但是经过多次实验,上述的option是无法识别多音字的,多音字的时候,系统会默认按照出现最早的那个拼音字母排序。

在此举一个例子:“咳嗽”。“咳”这个字是多音字,有“hai” 和“ke“两个读音,系统会优先选择hai这个读音,因为h在k的前面。这样排序下来,可能会导致有些多音字没有按照我们的习惯读音来排序。提醒大家注意。

(2)字符型变量的数字排序

接着用上面的数据集举例:count_c为字符型变量,但是存放的是数字,如果直接用proc sort对count_c排序,得到的结果并不是我们想要得到的。

data test;

set order;

  count_c=strip(put(count,best.));

run;

图片

proc sort data=test out =test1 ;

by count_c;

run;

图片

/ 解决方案如下: /

procsort data=test out =test1 sortseq=linguistic(numeric_collation=on);

by count_c;

run;

用sort过程步里面的sortseq=linguistic(numeric_collation=on)就可以实现了。得到的数据集如下,大家可以自己对比,跟用数值型结果count排序的结果是一样的。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SAS
    SAS
    +关注

    关注

    2

    文章

    523

    浏览量

    32868
收藏 人收藏

    评论

    相关推荐

    字符、指针变量该如何初始化

    在敲代码的时候,我们会给变量一个初始值,以防止因为编译器的原因造成变量初始值的不确定性。对于数值类型的变量往往初始化为0,但对于其他类型的变量,如
    发表于 09-23 11:50 2186次阅读

    两种采样方式

    两种采样方式.....................................
    发表于 08-08 15:04

    linux配置mysql的两种方式

    两种方式:a、$ find / -name mysql–print 查看是否有mysql文件夹b、$ netstat -a –n 查看是否打开3306端口
    发表于 07-26 07:46

    oracle多列排序两种删除表的方法的速度对比

    oracle多列排序两种删除表的方法的速度比较
    发表于 06-08 07:19

    编译环境的两种搭建方式

    编译环境的两种搭建方式putty工具的使用winscp工具的使用
    发表于 12-22 08:00

    SQL语言的两种使用方式

    SQL语言的两种使用方式在终端交互方式下使用,称为交互式SQL嵌入在高级语言的程序中使用,称为嵌入式SQL―高级语言如C、Java等,称为宿主语言嵌入式SQL的实现方式源程序(用主语言
    发表于 12-20 06:51

    逆变器的两种电流型控制方式

    逆变器的两种电流型控制方式 摘要:研究分析了逆变器的两种双环瞬时反馈控制方式——电流型准PWM控制方式和三态DPM
    发表于 07-10 11:21 4004次阅读
    逆变器的<b class='flag-5'>两种</b>电流型控制<b class='flag-5'>方式</b>

    C语言教程之字符变量的使用

    C语言教程之字符变量的使用,很好的C语言资料,快来学习吧。
    发表于 04-22 11:06 0次下载

    MC1648两种基本VCO的压控特性

    MC1648两种基本VCO的压控特性,有需要的都可以看看。
    发表于 07-20 15:48 43次下载

    Wincc如何与PLC进行通讯两种常用的方式介绍

    西门子WINCC与SiemensPLC通讯连接有多种方式,下面介绍两种常用的通讯方式
    的头像 发表于 02-17 09:27 3w次阅读
    Wincc如何与PLC进行通讯<b class='flag-5'>两种</b>常用的<b class='flag-5'>方式</b>介绍

    在MATLAB/simulink中建模时的两种不同实现方式

    导读:本期文章主要介绍在MATLAB/simulink中建模时的两种不同实现方式,一是直接用现成的文件库中的模块进行搭建,一是用Sfunction代码实现。接下来以电压
    的头像 发表于 09-15 10:07 1890次阅读

    MATLAB/simulink中两种实现建模方式的优势

    导读:本期文章主要介绍在MATLAB/simulink中建模时的两种不同实现方式,一是直接用现成的文件库中的模块进行搭建,一是用Sfunction代码实现。接下来以电压
    的头像 发表于 09-15 10:10 5052次阅读

    互锁正反转电路的两种实现方式

    有关正反转电路的知识,互锁正反转电路的两种实现方式,一是接触器互锁正反转,一是按钮互锁正反转,学习下这两种电路的工作原理,下面一起来看下
    的头像 发表于 04-27 15:47 1.1w次阅读
    互锁正反转电路的<b class='flag-5'>两种</b>实现<b class='flag-5'>方式</b>

    三相交流负载常见的两种连接方式

    三相交流负载常见的两种连接方式  三相交流电负载是现代电力系统中常见的一供电方式,它能够提供比单相交流更稳定和高效的电力供应。在三相交流负载中,有
    的头像 发表于 11-13 16:09 3354次阅读

    字符、指针变量等该如何初始化

     对于数值类型的变量往往初始化为0,但对于其他类型的变量,如字符、指针变量等该如何初始化呢
    的头像 发表于 03-18 11:02 1462次阅读