[程式] SAS中與LAG功能相反的指令orz

看板Statistics作者 (成立奧凶帝國!!)時間16年前 (2009/09/24 20:35), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
sas [程式問題]: 資料處理 打到一半發現問題自己處理好了 囧~ 就PO上來跟大家分享一下吧 [軟體熟悉度]: 高(1年以上) [問題敘述]: 我有一由下至上的累積次數長成這樣子 Group age cum_count A 11 18 A 12 13 A 13 10 A 14 6 A 15 2 A 16 1 B 10 17 B 11 15 B 12 8 B 13 0 我想把它還原成 Group age cum_count A 11 5 (及11歲的人數-12歲的人數) A 12 3 A 13 4 A 14 4 A 15 1 A 16 1 (最後一組不變) B 10 2 B 11 7 B 12 8 B 13 0 我知道如果是一般由上至下的累積次數分配可以用lag或dif處理 印象中好像有可以把下一格的數移到上一格的指令, 但是剛剛看了說明手冊還是找不到 請問有沒有人記得 謝謝!! [程式範例]: 我之前在計算逆向的累積次數分配時,是把原本的data依年齡由大至小排序後 做freq而成的, 本來想先將年齡由大至小排序後使用lag,但是發現也行不通 因為資料會變成 原累積次數 lag DIF 希望的次數分配 A 16 1 . . 0 A 15 2 1 1 1 A 14 6 2 4 4 A 13 10 6 4 4 A 12 13 10 3 3 A 11 18 13 5 5 B 13 0 . 0 B 12 8 0 8 8 B 11 15 8 7 7 B 10 17 15 2 2 第一組就用原累積次數-lag後可得 data test; input group age g_cum; cards; A 11 18 A 12 13 A 13 10 A 14 6 A 15 2 A 16 1 B 10 17 B 11 15 B 12 8 B 13 0 ; RUN; PROC SORT DATA=test; BY group DESCENDING age; RUN; DATA test; set teat; g_FREQ=DIF(g_CUM); BY year edu; IF first.group THEN g_freq=g_CUM; RUN; ----------------------------------------------------------------------------- -- (C)lass 【 分組討論區 】 11 卡漫夢工廠 卡通, 漫畫, 動畫 [Ckmike] 4 C_J_Artist 作家 Σ日本漫畫家專區 [Ckmike] 10 TakahasiShin 作家 ◎****高橋真作品討論版**** kenshin528 http://kenshinsasstory.blogspot.com/ SAS Story -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.160.195 ※ 編輯: kenshin528 來自: 114.42.160.195 (09/24 20:36)

09/24 20:49, , 1F
還是想問一下有沒有這個指令 囧~倒來倒去
09/24 20:49, 1F

09/24 20:49, , 2F
頭都昏了
09/24 20:49, 2F

09/24 21:22, , 3F
請看7989篇的相關討論
09/24 21:22, 3F

09/24 21:55, , 4F
了解 謝謝 !
09/24 21:55, 4F
※ 編輯: kenshin528 來自: 114.45.222.109 (09/26 10:03)
文章代碼(AID): #1AksUMJs (Statistics)