sas 两数据集的变量匹配,使用proc sql过程
实现目的:l连接两个数据集时,如果两个dataset中name一致,年龄相差1岁以内,认为他们可能是同一个人
需要在主数据集中标注这部分可疑对象
如何用sas实现?
dataset total.total 即(a) : name birth 。。。。and 部分其他变量
dataset summary.data 即 (b): name01 birthday 。。。。and 部分其他变量
sas 程序:
proc sql;
create table ab as
select a.*, b.wage
from total.total as a left join summary.data as b
on a.name=b.name01 and yrdif(a.birth,b.birthday ,"actual")<1;
这种方法得到的结果,得到的观测对象数量是原主数据集的好几倍,好像出错了?
而且匹配成功的变量都是名字为缺失值的观测对象,怎么解决?
在on语句中,yrdif(a.birth,b.birthday ,"actual")<1这种表达方式可行吗?