2016-11-02 1 views
0

私はSASにはとても新しいです。私は私の問題の解決策を探していました。残念ながら、私は何も見つけることができませんでした。私はあなたの助けに非常に感謝します。問題は実際には非常に簡単です。長さの異なる2つの変数の共通値を見つけるにはどうすればよいですか?

私は、異なる長さの2つの異なるデータセット(dat1とdat2と呼ぶ)を持っています。さらに、私は興味のある変数Xを持っています。これらの2つの列の共通の値を見つける方法を探しています(dat1_Xとdat2_Xと呼ぶ)。データセットは非常に大きいですが、約1,000万の観測値です。

+0

は、あなたのデータおよびあなたがこれまでにしようとしているの例を教えてください。 – Jetzler

+0

比較を参照してください。 – JJFord3

答えて

0

多くの方法があります。

1つのデータセットが小さく、効率が問題だった場合は、ハッシュテーブル(または形式)を使用してより大きなものを通過しながらルックアップを実行することを検討できます。

はそうでない場合は、以下の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; 
関連する問題