看板 Statistics 關於我們 聯絡資訊
※ 引述《woowolf (狼咩咩兒)》之銘言: : [軟體程式類別]: : SAS : [程式問題]: : 資料處理 : [軟體熟悉度]: : 熟悉 : [問題敘述]: : 想在一個資料裡面sorting兩次 : 資料如下:(我自己用了簡單的範例) : https://imgur.com/8ftZVTI : 然後現在想要針對Cate1排序,排序的依據是Count的大小(desending) : 排完之後保留這個排序,針對Cate2排序,排序的依據依舊是Count的大小(desending) : 最後期望的結果是這樣 : https://imgur.com/ukWVNGy : : [程式範例]: : : 之前天真的認為Proc sort 可以為我做到這件事 : 不過想想如果都是sort by Count的話好像不能分類sorting(? : 於是又想了可以在proc sort 之後用first. Last.的方法去排序 : 遇到跟proc sort 一樣的問題 : 於是又想 那要是依據類別拆開呢 : 先用proc SQL 把cate1拆開成animals 和 plants兩個類別, : 再去sort裡面的cate2 : 最後拼起來之前再去比較cate1的cate大小 : 應該是可行沒錯(等等來試 : 但現在是只有Cate1只有兩種類別,那要是Cate1有幾十種類別呢 : 寫進macro裡讓他重複拆拆拆拆然後比比比比最後合合合合? : 通常這種會建議做個sorting variabe來方便排序。 proc sql noprint; create table final(drop = count_total) as select a.*, b.count_total from old a left join (select cate1, count as count_total from old group by cate1 having count eq max(count)) b on a.cate1 eq b.cate1 order by b.count_total desc, a.count desc; quit; 不確定整個data是不是missing cate2的就是subtotal, 是的話可以在group by cate1 having count eq max(count)這段改成where missing(cat e2)就好。 一樣是盲打的,可能有誤... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.12.98.170 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1597462914.A.2DC.html ※ 編輯: freedomyang (39.12.98.170 臺灣), 08/15/2020 11:55:57