程序有点长, 但是都是很简单的. 没有复杂的循环, 也没有宏, 是纯粹的能看懂的程序
程序分了三个表做,因为这是我目前能找到的最好最简单最直接的方法了.
希望能满足楼主要求, 也希望能对楼主有启发改进这个算法.
最后, 真的找了好久的呢, 楼主满意的话采纳我吧. MUA!
- data a;
- input ida $ ;
- cards;
- a
- a
- a
- b
- d
- j
- g
- run;
- data b;
- input idb $;
- cards;
- b
- c
- d
- c
- f
- f
- h
- run;
- data c;
- input idc $;
- cards;
- a
- b
- c
- d
- e
- f
- run;
- proc sql;
- create table na as
- select a.*,
- case when c.idc is not null
- then 1 else 0
- end
- from a as a left join c as c
- on a.ida=c.idc ;
- quit;
- data na;set na;
- rename _tema001=ga;run;
- proc sql;
- create table nb as
- select b.*,
- case when c.idc is not null
- then 1 else 0
- end
- from b as b left join c as c
- on b.idb=c.idc ;
- quit;
- data nb;set nb;rename _tema001=gb;run;
- data aandb;
- merge a b c na nb;
- run;
- data both;
- set aandb;
- if ga=1 and gb=1 then groupa=1;
- else groupa=0;
- if ga=1 or gb=1 then groupb=1;
- else groupb=0;
- drop ga gb;
- run;


雷达卡






京公网安备 11010802022788号







