
data test;
input nbr date time price;
datalines;
1102 15614 32400 9
1102 15614 32481 9
1102 15614 32681 8.85
1102 15614 33041 9.05
1102 15614 33121 9
1102 15614 33201 9
1102 15614 33241 9
1102 15614 33441 9
1102 15614 33561 9.05
1102 15614 34002 9.05
1102 15615 32400 9.3
1102 15615 32483 9.3
1102 15615 32522 9.3
1102 15615 32642 9.25
1102 15615 32762 9.25
1102 15615 32802 9.3
1102 15615 32842 9.3
1102 15615 32962 9.3
1102 15615 33042 9.35
1102 15615 33122 9.35
1102 15616 32400 9.1
1102 15616 32521 9.05
1102 15616 32601 9.05
1102 15616 32681 9
1102 15616 32721 9
1102 15616 32801 8.95
1102 15616 32921 8.9
1102 15616 33001 8.95
1102 15616 33161 8.9
1102 15616 33281 8.9
1102 15617 32400 8.9
1102 15617 32481 8.9
1102 15617 32521 8.9
1102 15617 32601 8.85
1102 15617 32841 8.9
1102 15617 32961 8.9
1102 15617 33121 8.9
1102 15617 33161 8.9
1102 15617 33241 8.9
1102 15617 33361 8.9
;
run;
proc sort data=test;
by nbr date time;
run;
data result;
set test;
by nbr date;
retain pre_row now_row .;
pre_row=lag(price);
if first.date then
do;
pre_row=.;
now_row=price;
rate='('||strip(now_row)||'-'||strip(pre_row)||') /' ||strip(now_row);
end;
else
do;
now_row=price;
rate='('||strip(now_row)||'-'||strip(pre_row)||') /' ||strip(now_row);
end;
run;
proc print;
run;
Obs nbr date time price pre_row now_row rate
1 1102 15614 32400 9.00 . 9.00 (9-.) /9
2 1102 15614 32481 9.00 9.00 9.00 (9-9) /9
3 1102 15614 32681 8.85 9.00 8.85 (8.85-9) /8.85
4 1102 15614 33041 9.05 8.85 9.05 (9.05-8.85) /9.05
5 1102 15614 33121 9.00 9.05 9.00 (9-9.05) /9
6 1102 15614 33201 9.00 9.00 9.00 (9-9) /9
7 1102 15614 33241 9.00 9.00 9.00 (9-9) /9
8 1102 15614 33441 9.00 9.00 9.00 (9-9) /9
9 1102 15614 33561 9.05 9.00 9.05 (9.05-9) /9.05
10 1102 15614 34002 9.05 9.05 9.05 (9.05-9.05) /9.05
11 1102 15615 32400 9.30 . 9.30 (9.3-.) /9.3
12 1102 15615 32483 9.30 9.30 9.30 (9.3-9.3) /9.3
13 1102 15615 32522 9.30 9.30 9.30 (9.3-9.3) /9.3
14 1102 15615 32642 9.25 9.30 9.25 (9.25-9.3) /9.25
15 1102 15615 32762 9.25 9.25 9.25 (9.25-9.25) /9.25
16 1102 15615 32802 9.30 9.25 9.30 (9.3-9.25) /9.3
17 1102 15615 32842 9.30 9.30 9.30 (9.3-9.3) /9.3
18 1102 15615 32962 9.30 9.30 9.30 (9.3-9.3) /9.3
19 1102 15615 33042 9.35 9.30 9.35 (9.35-9.3) /9.35
20 1102 15615 33122 9.35 9.35 9.35 (9.35-9.35) /9.35
21 1102 15616 32400 9.10 . 9.10 (9.1-.) /9.1
22 1102 15616 32521 9.05 9.10 9.05 (9.05-9.1) /9.05
23 1102 15616 32601 9.05 9.05 9.05 (9.05-9.05) /9.05
24 1102 15616 32681 9.00 9.05 9.00 (9-9.05) /9
25 1102 15616 32721 9.00 9.00 9.00 (9-9) /9
26 1102 15616 32801 8.95 9.00 8.95 (8.95-9) /8.95
27 1102 15616 32921 8.90 8.95 8.90 (8.9-8.95) /8.9
28 1102 15616 33001 8.95 8.90 8.95 (8.95-8.9) /8.95
29 1102 15616 33161 8.90 8.95 8.90 (8.9-8.95) /8.9
30 1102 15616 33281 8.90 8.90 8.90 (8.9-8.9) /8.9
31 1102 15617 32400 8.90 . 8.90 (8.9-.) /8.9
32 1102 15617 32481 8.90 8.90 8.90 (8.9-8.9) /8.9
33 1102 15617 32521 8.90 8.90 8.90 (8.9-8.9) /8.9
34 1102 15617 32601 8.85 8.90 8.85 (8.85-8.9) /8.85
35 1102 15617 32841 8.90 8.85 8.90 (8.9-8.85) /8.9
36 1102 15617 32961 8.90 8.90 8.90 (8.9-8.9) /8.9
37 1102 15617 33121 8.90 8.90 8.90 (8.9-8.9) /8.9
38 1102 15617 33161 8.90 8.90 8.90 (8.9-8.9) /8.9
39 1102 15617 33241 8.90 8.90 8.90 (8.9-8.9) /8.9
40 1102 15617 33361 8.90 8.90 8.90 (8.9-8.9) /8.9
[此贴子已经被作者于2009-1-23 17:16:39编辑过]