请进

来源: 2008-04-30 18:54:18 [旧帖] [给我悄悄话] 本文已被阅读:

看你的例子,好像指的是日期的重复,而且每个日期用过一次后就不能再配对了。是吗?所以ID=1 的日子‘20’配对了三次,ID=2的’10‘配对了一次,12’配对‘了一次,一共两次。ID=3是0次。如果ID=2有三次10,也只能是配对一次。

假定你的DATASET A 里只有这三个变量,并且STARTDATE, ENDDATE都是$10.格式。

data start;
set A;
day=substr(startDate,4,2);
keep ID day;
run;
data end;
set A;
day=substr(endDate,4,2);
keep ID day;
run;

data mix;
set start end;
temp=1;
proc sort; by ID day;
run;

proc means data=mix sum noprint; by ID day;
var temp; output out=B sum=;

data B;
set B;
pairs=INT(temp/2);
drop temp;

proc print; var ID day pairs;
run;