作者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
推 qfchi:資料經過sales排序後 if _n_ <= 20 then group=1 02/08 15:56
→ qfchi:else if 20 < _n_ <=40 then group=2 依此類推 02/08 15:56
推 tew:proc rank 02/08 16:40
→ chinghsi:請問1樓 如果n是個很大,不確定多少的數呢 02/08 17:25
推 west1996:先把資料掃過一遍後把筆數讀出來當變數就行了 02/08 20:50