通过匹配SAS中的两个数据集来提取信息

时间:2016-04-01 18:40:39

标签: sas

我有两个数据集。两者都有一个共同的列ID。我想检查来自df1的ID是否位于df2中并从​​df1中提取所有这些行。我在SAS做这件事。

3 个答案:

答案 0 :(得分:1)

可以在一个SQL查询中轻松完成。

proc sql;
   create table extract_from_df1 as
   select 
       *
   from
       df1
   where 
       id in (select id from df2)
   ;
quit;

答案 1 :(得分:0)

有很多方法可以做到这一点。例如:

proc sql;
    create table compare as select distinct
        a.id as id1, b.id as id2
        from table1 as a
        left join table2 as b
        on a.id = b.id;
quit;

然后保持比赛。或者你可以试试:

proc sql;
    delete from table2 where id2 in select distinct id1 from table1;
quit;

答案 2 :(得分:0)

数据df1;
输入ID名称$;
卡;
1 abc
2 cde
3 fgh
4 ijk
;
运行;

数据df2;
输入ID地址$;
卡;
1 abc
2 cde
5 ggh
6 ihh
7 jjj
;
运行;
数据c;
合并df1(in = x)df2(in = y);
如果x和y;
保留id名称;
运行;
proc print data = c;
运行;