作者jasonlian ()
看板Statistics
标题Re: [问题] SAS 将一串资料按照数值大小分为十组
时间Tue Mar 15 13:13:31 2011
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
1F:推 frank1206:您好,但这个方法好像不会自动去除遗漏值再分组。 03/15 19:21
2F:→ frank1206:但也让我学到一个分组的方式,谢谢。 03/15 19:22