私は以下の2つのデータセットを持っています。 私は、ファイルBのイン・アウト期間SAS - 別のファイルの中間の期間に基づいてファイルから行を削除する
ファイル
SEQ ID date var1
1 A12 03JAN04 242
2 A12 01FEB06 356
3 A12 06JAN08 325
4 A12 28DEC09 123
5 B34 06MAY03 985
6 B34 13JUN03 198
7 B34 10MAY05 241
8 C56 09NOV10 155
9 C56 19OCT13 352
ファイルBについては
ID date_in date_out
A12 01JAN04 04JAN04
A12 05FEB08 08FEB08
B34 03MAY03 06MAY03
B34 09MAY05 19MAY05
C56 12JUL12 18JUL12
に収まる日付でから行を削除したいですたとえば、ID = A12の場合、彼の最初のobsは01JAN04-04JAN04の範囲内にあるため、obsを削除しますが、残りの部分は保持します。
基本的に、私は次のような結果
SEQ ID date var1
2 A12 01FEB06 356
3 A12 06JAN08 325
4 A12 28DEC09 123
6 B34 13JUN03 198
8 C56 09NOV10 155
9 C56 19OCT13 352
両方のファイルAを取得する必要がありますし、BはIDごとに複数のレコードを持っており、ファイルB内でのアウト期間の間なかれ一定ではありません。
私はおそらく、Aのラインを通ってループを書くことができ、IDと一致するBのリストをサブセット化してから、Bのリストをループします。Aの日付が、期間の間。
しかし、これはSASで必要なので、どこから始めたらいいのか分かりません。 SASでラインごとにどのようにループするのですか?例えば、 。私は両方のファイルをいくつかの方法でループするマクロを書く必要がありますか?何とかSQLを使用しますか?
この問題にどう対処するかに関するアドバイスをいただければ幸いです。 ありがとう!
非常にエレガントなソリューションを!ありがとう! – btiger