|
|
楼主

楼主 |
发表于 2010-1-1 09:14:36
|
只看该作者
如何排序?
data a;
input group $ x y flag;
cards;
a 1 5 0
a 2 4 1
b 1 6 1
b 1 4 1
b 3 10 0
c 2 7 1
c 3 15 0
c 20 23 1
c 21 27 0
;
(x,y)是时间区间, 每个group中(x,y)相互有重叠,并且根据一定的规则赋值于flag=1或0;
现想把每个group中的各条记录按照flag值重新排列,既,有相互重叠关系的每对(或每3个)记录,按照flag先0后1的顺序进行排列.
如下所示:
group x y flag
a 1 5 0
a 2 4 1
b 3 10 0
b 1 6 1
b 1 4 1
c 3 15 0
c 2 7 1
c 21 27 0
c 20 23 1
想用lag function 来做,既,建一个新变量sub_flag并赋予每个group中第一条记录为sub_flag=1,如果每条记录和上一条记录重叠就赋予这个新变量sub_flag同样的值1,如果不重叠,就让sub_flag=2.最后,根据sub_flag和flag进行排序. 这样做比较啰嗦,也比较笨,所以,就想请教有没有更好的一点的方法?
谢谢! |
|