看板 Statistics 關於我們 聯絡資訊
data test; inputD :$1. response; datalines; 1 745 1 678 1 . 2 867 2 931 2 214 3 . 3 . 3 978 4 . 4 . 4 . ; run; proc means data=work.test nway noprint; var response; class id; output out=work.stat(drop=_type_ _freq_) n=group sum=r_sum mean=r_mean median=r_median; run; data work.final; set work.stat; if group=3 then ans=r_median; else if group=2 then ans=r_mean; else if group=1 then ans=r_sum/2; else if group=0 then ans=.; keep id group ans; run; proc print data=work.final; run; ※ 引述《zaicross (Zoc)》之銘言: : 各位高手好! : 小弟這邊有一個sas語法的問題想請教各位 : 我現在有一筆資料,每一個id都有三筆數據, : 現在我想將3筆都有數據的取中位數,只有2筆有的話計算兩者平均,只有1筆的話將該值 : 除以2,不知道有沒有語法可以寫! : 拜託各位了!(找很久都無解 : 或是 : 將有三筆數據的命為3 : 只有兩筆的命為2 : 只有一筆的命為1 : 都沒有數據命為0 : 希望跑完會長這樣: : ID Response Group : 1 745 2 : 1 678 2 : 1 NF 2 : 2 867 3 : 2 931 3 : 2 214 3 : 3 NF 1 : 3 NF 1 : 3 978 1 : 4 NF 0 : 4 NF 0 : 4 NF 0 : https://i.imgur.com/UKuIMRk.jpg
----- Sent from JPTT on my Samsung SM-N9208. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.246.197.196 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1547015511.A.413.html ※ 編輯: west1996 (27.246.197.196), 01/09/2019 14:35:11
zaicross: 感謝回覆!!不過我的狀況主要是針對有幾千幾百筆的情況 01/10 01:05
zaicross: 謝謝 01/10 01:05
west1996: 只要你邏輯沒有講漏,程式後半段的語法與資料量無關,幾 01/10 10:45
west1996: 億筆也是可以正確執行吧?! 01/10 10:45