s*********y 发帖数: 34 | 1 原数据:
Obs ID name usage GC x y
1 9 I 5.2 . 27 0
2 1 A 5.6 . 24 0
3 14 N 5.9 . 8 0
4 5 E 6.0 . 70 1
5 2 B 6.5 . 77 1
6 10 J 6.8 . 92 1
7 11 K 6.8 . 98 2
8 8 H 7.4 . 87 2
9 6 F 8.0 . 16 2
10 13 M 8.0 . 84 3
11 15 O 8.6 . 55 3
12 3 C 9.8 . 19 3
13 12 L 10.0 . 93 4
14 4 D 12.0 . 51 4
15 7 G 12.0 . 56 4
目标数据:
Obs ID name usage GC x y
1 9 I 5.2 3 27 0
2 1 A 5.6 2 24 0
3 14 N 5.9 1 8 0
4 5 E 6.0 1 70 1
5 2 B 6.5 2 77 1
6 10 J 6.8 3 92 1
7 11 K 6.8 3 98 2
8 8 H 7.4 2 87 2
9 6 F 8.0 1 16 2
10 13 M 8.0 3 84 3
11 15 O 8.6 2 55 3
12 3 C 9.8 1 19 3
13 12 L 10.0 3 93 4
14 4 D 12.0 1 51 4
15 7 G 12.0 2 56 4
x - random number. 主要每次3行, 按x从小到大排一下,最小的GC=1,最大的GC=3,中间
的GC=2.
哪位SAS高手支一招. 想用proc sql,但是感觉不好用. 最好能实现在sort usage 后,
每次读n行, 从小到大按x的数值来从小到大分配GC的数值. | k*******a 发帖数: 772 | 2 假设你的原始data叫test
proc sql;
select id,name,usage,
(select count(*) from test where y=a.y and x<=a.x) as gc,
x, y
from test a;
quit; |
|