為什麼這篇descend相反鄉民發文收入到精華區:因為在descend相反這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者kenshin528 (成立奧凶帝國!!)站內Statistics標題[程式] SAS中與LAG...
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)