Re: [問題] SAS 將一串資料按照數值大小分為十組
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 7 篇):