-1

たとえば、SAS では、データセット A (左下) に 5 つの ID があります。データセット B があります (右下にいくつかの A の ID が含まれている可能性があります)。必要なのは、A で 1 つの一意の組み合わせ (A は主要な結果のデータセット) を見つけることであり、B は同性、年齢範囲 5 以内、収入範囲10000 以内です。多くの b.id が a.id とマージされる可能性があります。しかし、これがキックです。b.id は 1 回しか使用できません。この場合、101 は 106 と結合し、102 は 111 と結合し、103 は 112 と結合し、105 は 110 と結合します。うまくいけば、それは十分に明確です。ありがとう!

ID  sex  age   income                 ID    sex    age   income
101  F    30    20000                 106    F      26    21000
102  M    20    10000                 102    M      20    10000
103  F    38    30000                 110    M      45    44000
104  M    55    35000                 111    M      19    14000
105  M    43    45000                 112    F      33    34000

結果

    ID_a  sex_a  age_a   income_a    ID_b    sex_b    age_b   income_b
      101  F    30    20000                 106    F      26    21000
      102  M    20    10000                 111    M      19    14000
      103  F    38    30000                 112    F      33    34000
      104  M    55    35000                 
      105  M    43    45000                 110    M      45    44000
4

3 に答える 3

0
select a.Id, b.Id from SetA a
left join SetB b on a.sex = b.sex and 
a.age between b.age - 5 and b.age + 5 and 
a.income between b.income - 10000 and b.income + 10000
于 2015-05-13T13:49:26.923 に答える
0

この質問への回答で使用されている手法を使用して、あいまい一致を実行しながら、各 b.id が 1 回だけ使用されるようにする必要があります。

アイデアは、B データセットを一時的な配列/ハッシュ オブジェクトにロードすることです。これにより、どの b.id が既に使用されているかを追跡しながら、それを A に一致させることができます。

于 2015-05-13T17:38:01.977 に答える