SAS中文论坛

标题: 请大家帮帮忙,初学者,谢谢了,在线等! [打印本页]

作者: shiyiming    时间: 2009-1-4 14:17
标题: 请大家帮帮忙,初学者,谢谢了,在线等!
例如,我有一张表a,其中有name、email、mobile三个变量,另外有一张表b,其中也有name和mobile两个变量,请问如何写一个程序可以使:
1、当b中的name对应a中的name是唯一时,b中的添加一列等于a中的email
2、当b中的name对应a中的name不是唯一时,在比较两张表中的mobile,将name和mobile都同时相同的email添加在B表中。
谢谢大家了!在线等
作者: shiyiming    时间: 2009-1-4 16:40
标题: Re: 请大家帮帮忙,初学者,谢谢了,在线等!
楼主把问题描述清楚再说

什么唯一不唯一,对应关系如何,想要别人帮你至少先自己理清思路。
作者: shiyiming    时间: 2009-1-4 18:49
标题: Re: 请大家帮帮忙,初学者,谢谢了,在线等!
[code:2bqonoxr]
/*程序没调试过,楼主可以自己去调试一下*/
proc sort data=a;
        by name mobile;
run;
proc sort data=b;
        by name mobile;
run;
data a1 a2;
        set a;
        if first.name+last.name=2 then output a1;
        else output a2;
run;
data result;
        merge a1 b(in=ok);
        by name;
        if ok;
run;
/*假设你这里是1对多的情况,如果是多对多,就用sql*/
data result;
        merge a2 result(in=ok);
        by name mobile;
        if ok;
run;[/code:2bqonoxr]




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2