作者chinghsi (Where are you)
站内Statistics
标题Re: [问题] SAS资料处理
时间Sun Feb 8 14:15:18 2009
我的资料可以简化的如下显示:
ID Name Year Sales Control
1311 A 200712 12345 1.25
1311 A 200612 9999 1.26
1477 B 200712 95863 1.27
1477 B 200612 5555 1.28
2544 C 200712 7065 1.29
2544 C 200612 10243 1.30
4055 D 200712 9123 1.31
4055 D 200612 9023 1.32
5123 E 200712 12352 1.33
5123 E 200612 23412 1.34
现在想把资料根据Sales的大小分成五组
(假设资料有一百笔,则最大的1-20笔为第一组,21-40为第二组...81-100为第五组)
作组内资料的比较
我的购想一是先把资料根据Sales的大小排序
再把它切成五组
以这里的例子来看,排序如下
再把它两个两个分成一组
ID Name Year Sales Control
1477 B 200712 95863 1.27
5123 E 200612 23412 1.34
5123 E 200712 12352 1.33
1311 A 200712 12345 1.25
2544 C 200612 10243 1.30
1311 A 200612 9999 1.26
4055 D 200712 9123 1.31
4055 D 200612 9023 1.32
2544 C 200712 7065 1.29
1477 B 200612 5555 1.28
不过确不知道 分组的语法应该要如何写
我的购想二是可以靠PROC UNIVARIATE找到第20百分位数,第40百分位数,...第80百分位数
然後再根据条件式(IF)来帮忙分组
ID Name Year Sales Control Group
1311 A 200712 12345 1.25 2
1311 A 200612 9999 1.26 3
1477 B 200712 95863 1.27 1
1477 B 200612 5555 1.28 5
2544 C 200712 7065 1.29 5
2544 C 200612 10243 1.30 3
4055 D 200712 9123 1.31 4
4055 D 200612 9023 1.32 4
5123 E 200712 12352 1.33 2
5123 E 200612 23412 1.34 1
接着就可以利用PROC MEANS
CLASS
BY
或PROC UNIVARIATE
BY
做组内资料的比较了
可是也是卡在 不知道要如何把第20百分位数,第40百分位数,...第80百分位数 输出来
请问大家
这两个购想的语法,该如何写呢
谢谢大家的帮忙
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.23.195.23
1F:推 qfchi:资料经过sales排序後 if _n_ <= 20 then group=1 02/08 15:56
2F:→ qfchi:else if 20 < _n_ <=40 then group=2 依此类推 02/08 15:56
3F:推 tew:proc rank 02/08 16:40
4F:→ chinghsi:请问1楼 如果n是个很大,不确定多少的数呢 02/08 17:25
5F:推 west1996:先把资料扫过一遍後把笔数读出来当变数就行了 02/08 20:50