Re: [問題] SAS資料處理
既然妳一定要用這種方法
proc sort data=file;by sales;
run;
data file;
set file nobs=xx;
if _n_/xx<=0.2 then Gsale=1;
if 0.2<_n_/xx<=0.4 then Gsale=2;
...;
run;
這樣就分好組了
請記得將不同年度的資料分開
如果可以 自己查一下proc rank
※ 引述《chinghsi (Where are you)》之銘言:
: 我的資料可以簡化的如下顯示:
: 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: 61.231.171.243
推
02/09 00:03, , 1F
02/09 00:03, 1F
推
02/09 00:07, , 2F
02/09 00:07, 2F
推
02/09 11:49, , 3F
02/09 11:49, 3F
→
02/09 11:49, , 4F
02/09 11:49, 4F
推
02/09 12:07, , 5F
02/09 12:07, 5F
※ 編輯: tew 來自: 61.231.187.145 (02/09 12:30)
→
02/09 12:31, , 6F
02/09 12:31, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
3
5
完整討論串 (本文為第 11 之 19 篇):
問題
1
3
問題
1
3
問題
1
1
問題
2
5
問題
1
1
問題
1
3
問題
1
2
問題
3
5