SAS編程:頻數(shù)匯總時,如何使分組類別按固定順序展示斜姥?

在前面的文章SAS編程:頻數(shù)匯總時如何處理分析分組種類不全的情況鸿竖?中,介紹了Means過程步中使用Preloadfmt選項輸出分析分組計數(shù)為0的記錄铸敏。

我們在分組計數(shù)時缚忧,除了要求所有分析分組都輸出外,有時還需要使分組類別以固定的順序輸出杈笔。后者常發(fā)生在分組變量類別無明顯的順序邏輯關(guān)系(例如闪水,Race的匯總輸出),或分組變量有順序邏輯關(guān)系但默認(rèn)排序與邏輯順序不同的情況下(例如桩撮,Sex的匯總輸出)敦第。

上一篇文章,輸出的Sex匯總結(jié)果如下店量,這時候如果要求輸出結(jié)果以Male芜果、Female的順序輸出,如何處理呢融师?

Result

與上一篇文章對應(yīng)右钾,也是兩種方法。

Dummy數(shù)據(jù)集

第一種旱爆,在Dummy數(shù)據(jù)集時舀射,新建一個排序變量對應(yīng)每一個分組類別的位置,最后輸出時按該變量排序怀伦。

具體的演示代碼如下:

**Get data from sashelp.class;
data class;
  set sashelp.class;
  where sex = "M";
run;

**Count for each sex category;
proc freq data = class;
  tables sex / out = result1(keep = sex count);
run;

**Create a dummy dataset for missing category;
data dummy;
  length sex $1;
  sex = "F"; ord = 2; output;
  sex = "M"; ord = 1; output;
run;

**Merge result dataset with dummy dataset;
data result;
  merge dummy result1;
  by sex;

  if count = . then count = 0;

  proc sort;
    by ord;
run;

Result 1

最后輸出結(jié)果實現(xiàn)了脆烟,Male在前、Female在后的排列效果房待。

Preloadfmt + Notsorted選項

第二種邢羔,在使用Preloadfmt選項設(shè)置分組變量的Format時,使用notsorted選項固定分組變量的Format的順序桑孩。

關(guān)于Format過程步的notsorted選項的介紹拜鹤,可以參考這篇文章,SAS編程:Proc Format中NOTSORTED選項簡介流椒。

示例代碼如下:

**Get data from sashelp.class;
data class2;
  set sashelp.class;
  where sex = "M";

  *Create count flag;
  flag = 1;
run;

**Set format for class var;
proc format;
  value $sex (notsorted)
    "M"="Male"
    "F"="Female"
  ;
run;

**Get count;
proc means data = class2 nway completetypes;
  class sex/ preloadfmt order = data;
  var flag;
  output n=count out = result2;

  format sex $sex.;
run;
Result 2

這里有一個注意點敏簿,除了使用preloadfmtnotsorted選項外,在Means過程步的Class語句中惯裕,還需要使用 order = data 這一個選項温数,這樣才能實現(xiàn)按照Format定義的順序進(jìn)行輸出。讀者可以自行復(fù)制代碼轻猖,進(jìn)行修改驗證帆吻。

Means過程步Class語句中的order =選項總共有4種排序方式,具體每一種排序方式的說明可以參考官方文檔 SAS Help Center: Syntax: PROC MEANS CLASS Statement咙边。

  • DATA
  • FORMATTED
  • FREQ
  • UNFORMATTED

結(jié)語

Preloadfmt以及notsorted選項能夠解決頻數(shù)匯總時分組類別計數(shù)為0分組類別排序問題猜煮,同時也能夠簡化代碼,推薦讀者朋友們在頻數(shù)匯總中使用這兩個選項败许。

感謝閱讀王带!若有疑問,歡迎評論區(qū)交流市殷!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末愕撰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子醋寝,更是在濱河造成了極大的恐慌搞挣,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件音羞,死亡現(xiàn)場離奇詭異囱桨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)嗅绰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門舍肠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窘面,你說我怎么就攤上這事翠语。” “怎么了财边?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵肌括,是天一觀的道長。 經(jīng)常有香客問我酣难,道長们童,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任鲸鹦,我火速辦了婚禮,結(jié)果婚禮上跷跪,老公的妹妹穿的比我還像新娘馋嗜。我一直安慰自己,他們只是感情好吵瞻,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布葛菇。 她就那樣靜靜地躺著甘磨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪眯停。 梳的紋絲不亂的頭發(fā)上济舆,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機(jī)與錄音莺债,去河邊找鬼滋觉。 笑死,一個胖子當(dāng)著我的面吹牛齐邦,可吹牛的內(nèi)容都是我干的椎侠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼措拇,長吁一口氣:“原來是場噩夢啊……” “哼我纪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丐吓,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤浅悉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后券犁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體术健,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年族操,在試婚紗的時候發(fā)現(xiàn)自己被綠了苛坚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡色难,死狀恐怖泼舱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情枷莉,我是刑警寧澤娇昙,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站笤妙,受9級特大地震影響冒掌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹲盘,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一股毫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧召衔,春花似錦铃诬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兵志。三九已至,卻和暖如春宣肚,著一層夾襖步出監(jiān)牢的瞬間想罕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工霉涨, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留按价,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓嵌纲,卻偏偏與公主長得像俘枫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子逮走,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容