2

次のようなデータセットがあります。

    Unique_ID Date    
    1         03/23/1995
    1         03/27/1995
    1         04/14/1995
    1         08/29/1995
    1         02/14/1996
    .         .
    .         .
    .         .
    1         03/19/1997
    2         10/20/1993
    .         .
    .         .
    .         .
    2         04/20/2000

各 Unique_ID 内で、最初の観測から少なくとも 3 か月離れた日付を持つ観測のみを保持する必要があります (私のデータ セットは Unique_ID と Date で並べ替えられています)。たとえば、Unique_ID 1 内では、1995 年 3 月 23 日から少なくとも 90 日後の次の観測を保持する必要があり、その日から 90 日後の次の観測などを保持する必要があります。マクロまたはある種のループを使用して、誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

2

次のようなことを試すことができます:

data want;
   set have;
      by ID;
   retain date2find;
   if first.ID then do;
      output;   /* This statement will include the first obs from each    */
                /* set of IDs if desired.  If not, delete this statement. */
      date2find = DATE + 90;
      end;

   if DATE >= date2find then do;
      output;                /* Output the found record    */
      date2find = DATE + 90; /* Re-set to date to be found */
      end;
   drop date2find;
run;

これは、データセットが説明どおりに (ID と DATE で) 並べ替えられていることに依存しています。

于 2013-02-11T18:39:32.557 に答える