Re: [問題] SAS 將一串資料按照數值大小分為十組

看板Statistics作者時間15年前 (2011/03/15 13:13), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串4/7 (看更多)
PROC RANK DATA=yourdata GROUPS=10 DESCENDING; VAR a1 a2 a3; RANKS ra1 ra2 ra3; RUN; ※ 引述《frank1206 ( )》之銘言: : 資料: : stkno a1 a2 a3 : 1101 12 13 14 : 1102 23 24 25 : 1102 23 23 26 : 2330 15 14 16 : 2303 34 35 56 : 2498 98 78 76 : 3049 12 14 20 : 5738 57 12 96 : 6374 56 73 35 : 7384 36 46 37 : 目的: : 欲將a1 a2 a3 按照數值大小分為十組,並留下stkno然後分別存檔 : 例如: : 將a1按數值大小分為 十個檔案 : 每個檔案裡面只有一個stkno : b1(最大的)裡面只有一個值 2498 (a1裡面最大的) : b2裡面的只有一個值5738 : 以此類推 : 之後再將a2 a3也分為十組 : 程式碼: : 有問過同學可以使用ntile處理,但是跑不出來。 : 以下是部分程式碼 : proc sql; : create table abc as : select ntile(10) over ( order by a1) as ntile : from a08; : quit; : 會出現錯誤 : ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, *, **, +, ',', -, /, <, <=, <>, =, >, >=, ?, AND, : BETWEEN, CONTAINS, EQ, EQT, GE, GET, GT, GTT, LE, LET, LIKE, LT, LTT, NE, NET, OR, ^=, |, ||, ~=. : ERROR 76-322: Syntax error, statement will be ignored. : 條件: : 1.因為每個欄位(從a1~a?)的數值不一定相同,所以不能使用obs : 2.每組組數必須相等 : 3.後續要將每個分組檔案與另外的檔案相對照,並篩選出符合的資料。 : (將兩邊的stkno相對照) : 希望有人能幫一下,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.112.245

03/15 19:21, , 1F
您好,但這個方法好像不會自動去除遺漏值再分組。
03/15 19:21, 1F

03/15 19:22, , 2F
但也讓我學到一個分組的方式,謝謝。
03/15 19:22, 2F
文章代碼(AID): #1DVlLzrm (Statistics)
討論串 (同標題文章)
文章代碼(AID): #1DVlLzrm (Statistics)