【发布时间】:2020-07-27 21:31:26
【问题描述】:
下午好,
所以,我开始学习 SAS 代码。
我想得到完全相同的结果
proc sql;
create table award_print_new as
select *
from awards_try2
where BOR_ITEM_TYPE NOT IN (SELECT BOR_ITEM_TYPE from FADSFUND);
run;
我虽然这是确切的代码,但结果不同,所以我错了。
proc sort data=awards_try2;
by BOR_ITEM_TYPE;
run;
proc sort data=FADSFUND;
by BOR_ITEM_TYPE;
run;
data award_print;
set awards_try2 (in=a) FADSFUND (in=b);
by BOR_ITEM_TYPE;
if a and not b;
run;
如下所示,有 9525 个观察值而不是 681 个。如何在 SAS 代码中获得 681?
1665 data award_print;
1666 set awards_try2 (in=a) FADSFUND (in=b);
1667 by BOR_ITEM_TYPE;
1668 if a and not b;
1669 run;
NOTE: There were 9525 observations read from the data set WORK.AWARDS_TRY2.
NOTE: There were 1226 observations read from the data set WORK.FADSFUND.
NOTE: The data set WORK.AWARD_PRINT has 9525 observations and 22 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
1670
1671 proc sql;
1672 create table award_print_new as
1673 select *
1674 from awards_try2
1675 where BOR_ITEM_TYPE NOT IN (SELECT BOR_ITEM_TYPE from FADSFUND);
NOTE: Table WORK.AWARD_PRINT_NEW created, with 681 rows and 15 columns.
1676 run;
【问题讨论】:
-
你在做一个集合,而不是一个合并。正在发生的事情是它正在读取两组记录而没有将它们合并在一起。快速回答,看看是否能为您解决问题。
-
非常感谢,
标签: sas