如何找到两个不同长度变量的共同值?

时间:2016-11-02 06:32:23

标签: sas

我是SAS的新手。我花了一些时间为我的问题寻找解决方案。不幸的是,我找不到任何东西。我非常感谢你的帮助。问题其实很简单。

我有两个不同长度的不同数据集(我们称之为dat1和dat2)。而且,它们都有一个我感兴趣的变量X.我正在寻找一种方法来找到这两列的常用值(让我们称之为dat1_X和dat2_X)。数据集相当大,大约有1000万次观测。

1 个答案:

答案 0 :(得分:0)

有很多方法!

如果一个数据集很小,效率问题,您可以考虑使用哈希表(或格式)执行查找,同时通过较大的数据集。

否则,以下SQL方法将起作用(尝试测试以查看哪个最有效):

/* correlated subquery (generally slow) */
proc sql;
create table want1 as
  select distinct x 
  from dat1_x
  where x in (select from dat2_x);

/* inner join */
proc sql;
create table want2 as
  select distinct a.x
  from dat1_x a, dat2_x b
  where a.x=b.x;

/* intersect */
proc sql;
create table want3 as
  select x 
  from dat1_x
intersect
  select x
  from dat2_x;
相关问题