作者west1996 ()
看板Statistics
標題Re: 請益sas分組問題!!
時間Wed Jan 9 14:31:44 2019
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://webptt.com/m.aspx?n=bbs/Statistics/M.1547015511.A.413.html
※ 編輯: west1996 (27.246.197.196), 01/09/2019 14:35:11
1F:推 zaicross: 感謝回覆!!不過我的狀況主要是針對有幾千幾百筆的情況 01/10 01:05
2F:→ zaicross: 謝謝 01/10 01:05
3F:→ west1996: 只要你邏輯沒有講漏,程式後半段的語法與資料量無關,幾 01/10 10:45
4F:→ west1996: 億筆也是可以正確執行吧?! 01/10 10:45