Re: [程式] 累積計數問題之2

看板Statistics作者 (無庸)時間10年前 (2013/12/13 05:10), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
這是不是你要用的啊? 其實我看不懂你到底要做什麼。。。 data apple; set apple; by ABC; retain ij remain; if first.ABC then do; IJ = DEF; remain = GH-DEF; end; else do; IJ = min(remain,def); remain = remain - IJ; end; run; ※ 引述《ajipon (阿蠻)》之銘言: : ------------------------------------------------------------------------ : [軟體程式類別]: : SAS : [程式問題]: : 資料處理 : [軟體熟悉度]: : 新手(不到1個月) : [問題敘述]: : 大家好,不好意思又要麻煩各位幫我看看了 : 以下是關於之前計數問題的延伸 : ABC DEF GH : A 2 8 : A 3 8 : A 2 8 : A 3 8 : B 2 2 : B 1 2 : C 1 4 : C 2 4 : C 2 4 : 原始資料如上,現在,我想要再多加一欄 : ABC DEF GH IJ remain : A 2 8 2 6 : A 3 8 3 3 : A 2 8 2 1 : A 3 8 1 0 : B 2 2 2 0 : B 1 2 0 0 : C 1 4 1 3 : C 2 4 2 1 : C 2 4 1 0 : 這裡,我用ABC來分組,GH欄為同一群組IJ加總的個數,同一群組的IJ欄加總 : 要等於GH,且每一列的IJ值不能超過DEF值 : 其中,remain為輔助計算用,並沒有特別意義 : 以A為例 2+3+2+1=8 : 以B為例 2+0=2 : 我試著用大大之前的程式碼寫寫看,但一直跑不出來,不知道是哪裡出錯了 : 各位請看一下 : proc sort data = apple; : by ABC; : run; : data apple; : set apple; : by ABC; : retain ; : if first.ABC then do; : IJ = DEF; : remain = GH-DEF; : end; : IJ = min(lag(remain),ftq); : remain = lag1(remain) - IJ; : run; : 先謝謝各位啦!! -- — I came like Water, and like Wind I go. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 129.93.111.32

12/14 00:24, , 1F
謝謝 問題已解決
12/14 00:24, 1F
文章代碼(AID): #1IgYPEat (Statistics)
討論串 (同標題文章)
文章代碼(AID): #1IgYPEat (Statistics)