在SAS中:我有2个数据集,并且如果我想找出仅一个变量的值,而该值在另一个简单的数据集中则不存在。
现在,如果我必须通过以下方式进行比较:
data dataset1;
input PointA $ PointB $ @6 date date7.;
format date mmddyy10.;
datalines;
NY LV 02Oct2018
NY LV 04Oct2018
NY LV 06Oct2018
;
给出Dataset1:
Obs PointA PointB Date
1 NY LV 10/02/2002
2 NY LV 10/04/2002
3 NY LV 10/06/2002
Dataset2的日期为2018年10月1日至2018年10月6日。
DATE
01Oct2018
02Oct2018
03Oct2018
04Oct2018
05Oct2018
06Oct2018
通缉:我想要的最终输出是与Dataset2相比,PointA-PointB缺少Dataset1中的所有值(日期)。所以我想要的输出是:
Obs PointA PointB Date
1 NY LV 10/01/2002
2 NY LV 10/03/2002
3 NY LV 10/05/2002
我正在使用NOT IN,但是它只给我日期。我需要以某种方式包括其他变量;在这种情况下,就是PointA,PointB。
答案 0 :(得分:0)
使用涉及不相等(ON
)比较的ne
条标准执行完整的笛卡尔联接。使用EXCEPT
set-operator
* use the proper informat! ;
data have;
input PointA $ PointB $ date date9.; format date mmddyy10.; datalines;
NY LV 02Oct2018
NY LV 04Oct2018
NY LV 06Oct2018
;
data dates; input
date date9.; format date mmddyy10.; datalines;
01Oct2018
02Oct2018
03Oct2018
04Oct2018
05Oct2018
06Oct2018
;
proc sql;
create table have_not_lookup as
select distinct
have.PointA, have.PointB, lookup.date
from
have
join
dates lookup
on
lookup.date NE have.date
except
select * from have
;