作者kenshin528 (成立奥凶帝国!!)
站内Statistics
标题[程式] SAS中与LAG功能相反的指令orz
时间Thu Sep 24 20:35:31 2009
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)
1F:→ kenshin528:还是想问一下有没有这个指令 囧~倒来倒去 09/24 20:49
2F:→ kenshin528:头都昏了 09/24 20:49
3F:→ tew:请看7989篇的相关讨论 09/24 21:22
4F:→ kenshin528:了解 谢谢 ! 09/24 21:55
※ 编辑: kenshin528 来自: 114.45.222.109 (09/26 10:03)