0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SAS:字符型變量的兩種排序方式

冬至子 ? 來源:小高的SAS學習筆記 ? 作者:xiao'gao ? 2023-05-19 10:41 ? 次閱讀

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

在做AE一類的table時,經常會有要求,需要我們先按照例次降序排序,如果例次相同按照SOC拼音首字母排序,例次降序排好理解,但是怎樣才能實現(xiàn)對字符型變量按照拼音排序呢?用一個例子來讓大家理解:

/ 測試數(shù)據(jù)集 /

data test;

set order;

count_c=put(count,best.);

run;

/ 結果如下: /

圖片

通常我們在處理此類問題時會想到用proc sort來對其進行排序

proc sort data=test out =test1 ;

by descending count soc;

run;

/ 結果如下: /

圖片

紅框部分“肝膽系統(tǒng)疾病”的例次為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);就可以實現(xiàn)了,大家可以試一下。得到的數(shù)據(jù)集如下。

圖片

但是經過多次實驗,上述的option是無法識別多音字的,多音字的時候,系統(tǒng)會默認按照出現(xiàn)最早的那個拼音字母排序。

在此舉一個例子:“咳嗽”?!翱取边@個字是多音字,有“hai” 和“ke“兩個讀音,系統(tǒng)會優(yōu)先選擇hai這個讀音,因為h在k的前面。這樣排序下來,可能會導致有些多音字沒有按照我們的習慣讀音來排序。提醒大家注意。

(2)字符型變量的數(shù)字排序

接著用上面的數(shù)據(jù)集舉例:count_c為字符型變量,但是存放的是數(shù)字,如果直接用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)就可以實現(xiàn)了。得到的數(shù)據(jù)集如下,大家可以自己對比,跟用數(shù)值型結果count排序的結果是一樣的。

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SAS
    SAS
    +關注

    關注

    2

    文章

    521

    瀏覽量

    32806
收藏 人收藏

    評論

    相關推薦

    字符、指針變量該如何初始化

    在敲代碼的時候,我們會給變量一個初始值,以防止因為編譯器的原因造成變量初始值的不確定性。對于數(shù)值類型的變量往往初始化為0,但對于其他類型的變量,如
    發(fā)表于 09-23 11:50 ?2143次閱讀

    兩種采樣方式

    兩種采樣方式.....................................
    發(fā)表于 08-08 15:04

    linux配置mysql的兩種方式

    兩種方式:a、$ find / -name mysql–print 查看是否有mysql文件夾b、$ netstat -a –n 查看是否打開3306端口
    發(fā)表于 07-26 07:46

    oracle多列排序兩種刪除表的方法的速度對比

    oracle多列排序兩種刪除表的方法的速度比較
    發(fā)表于 06-08 07:19

    編譯環(huán)境的兩種搭建方式

    編譯環(huán)境的兩種搭建方式putty工具的使用winscp工具的使用
    發(fā)表于 12-22 08:00

    SQL語言的兩種使用方式

    SQL語言的兩種使用方式在終端交互方式下使用,稱為交互式SQL嵌入在高級語言的程序中使用,稱為嵌入式SQL―高級語言如C、Java等,稱為宿主語言嵌入式SQL的實現(xiàn)方式源程序(用主語言
    發(fā)表于 12-20 06:51

    逆變器的兩種電流型控制方式

    逆變器的兩種電流型控制方式 摘要:研究分析了逆變器的兩種雙環(huán)瞬時反饋控制方式——電流型準PWM控制方式和三態(tài)DPM
    發(fā)表于 07-10 11:21 ?3956次閱讀
    逆變器的<b class='flag-5'>兩種</b>電流型控制<b class='flag-5'>方式</b>

    C語言教程之字符變量的使用

    C語言教程之字符變量的使用,很好的C語言資料,快來學習吧。
    發(fā)表于 04-22 11:06 ?0次下載

    MC1648兩種基本VCO的壓控特性

    MC1648兩種基本VCO的壓控特性,有需要的都可以看看。
    發(fā)表于 07-20 15:48 ?43次下載

    Wincc如何與PLC進行通訊兩種常用的方式介紹

    西門子WINCC與SiemensPLC通訊連接有多種方式,下面介紹兩種常用的通訊方式。
    的頭像 發(fā)表于 02-17 09:27 ?3w次閱讀
    Wincc如何與PLC進行通訊<b class='flag-5'>兩種</b>常用的<b class='flag-5'>方式</b>介紹

    在MATLAB/simulink中建模時的兩種不同實現(xiàn)方式

    導讀:本期文章主要介紹在MATLAB/simulink中建模時的兩種不同實現(xiàn)方式,一是直接用現(xiàn)成的文件庫中的模塊進行搭建,一是用Sfunction代碼實現(xiàn)。接下來以電壓
    的頭像 發(fā)表于 09-15 10:07 ?1788次閱讀

    MATLAB/simulink中兩種實現(xiàn)建模方式的優(yōu)勢

    導讀:本期文章主要介紹在MATLAB/simulink中建模時的兩種不同實現(xiàn)方式,一是直接用現(xiàn)成的文件庫中的模塊進行搭建,一是用Sfunction代碼實現(xiàn)。接下來以電壓
    的頭像 發(fā)表于 09-15 10:10 ?4845次閱讀

    互鎖正反轉電路的兩種實現(xiàn)方式

    有關正反轉電路的知識,互鎖正反轉電路的兩種實現(xiàn)方式,一是接觸器互鎖正反轉,一是按鈕互鎖正反轉,學習下這兩種電路的工作原理,下面一起來看下
    的頭像 發(fā)表于 04-27 15:47 ?1.1w次閱讀
    互鎖正反轉電路的<b class='flag-5'>兩種</b>實現(xiàn)<b class='flag-5'>方式</b>

    三相交流負載常見的兩種連接方式

    三相交流負載常見的兩種連接方式? 三相交流電負載是現(xiàn)代電力系統(tǒng)中常見的一供電方式,它能夠提供比單相交流更穩(wěn)定和高效的電力供應。在三相交流負載中,有
    的頭像 發(fā)表于 11-13 16:09 ?2383次閱讀

    字符、指針變量等該如何初始化

     對于數(shù)值類型的變量往往初始化為0,但對于其他類型的變量,如字符、指針變量等該如何初始化呢
    的頭像 發(fā)表于 03-18 11:02 ?1118次閱讀