看板 Statistics 關於我們 聯絡資訊
※ 引述《bbearh (go)》之銘言: : [軟體程式類別]: sas : [程式問題]: 資料處理 : [問題敘述]: : 要處理類似 [移動平均數] 又要以id分組做. : 因要平均的不像例子只有2 或 3, 會到30多筆. : 這有沒有一般的方法可用. : 謝謝! : -------------------- : 資料 : id vol : 1 10 : 1 12 : 1 9 : 1 3 : 2 4 : 2 5 : 2 6 : 2 7 : 8 1 : 8 1 : 8 1 : --------------------- : output: : sum2 同一id 往下加兩筆 : sum3 同一id 往下加 3筆 : 不夠資料加的, 變成 . : id vol sum2 sum3 : 1 10 22 31 : 1 12 21 24 : 1 9 12 . : 1 3 . . : 2 4 9 15 : 2 5 11 18 : 2 6 13 . : 2 7 . . : 8 1 2 3 : 8 1 2 . : 8 1 . . : 能夠分點敘述處理流程,基本上在撰寫程式或者跑統計時是相當有幫助的 : 甚至有經驗的人可以藉此告知你步驟是否錯誤 : [程式範例]: : 雖然張貼程式很可怕,但基本上有些程式還是要張貼才能解決 : ----------------------------------------------------------------------------- data a; input id vol ; cards; 1 10 1 12 1 9 1 3 2 4 2 5 2 6 2 7 8 1 8 1 8 1 ; run; proc sort data=a;by id; proc expand data=a out=b method=none; by id; convert vol=sum2/transformout=(cmovsum 2); convert vol=sum3/transformout=(cmovsum 3); run; data b;set b; if sum2=vol then sum2=.; else sum2=sum2; run; proc expand data=b out=c method=none; by id; convert sum3=sum3/transformout=(lead 1); run; data c;set c;if sum3=sum2 then sum3=.;run; c就是最後的data -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.217.180
bbearh:感謝! 我另外想知道是不是有現有的命令可用. 你的方法已回 01/18 00:20
bbearh:答了我. 01/18 00:20