0

このようなデータポイントデータがたくさんあります。サンプル:

        Date_1              Date_2
   10FEB2010:00:00:00      02/07/08
   10FEB2010:00:00:00      03/10/08
   10FEB2010:00:00:00      04/07/08
   24MAY2010:00:00:00      05/09/08      
   24MAY2010:00:00:00      06/11/08      
   24MAY2010:00:00:00      07/11/08

月の初めから両方の日付にインデックスを付けてから、「month_from」という新しい列でその間の月数を取得したいと思います。新しい列「month_from」をサンプルデータセットに追加して、次のようにします。

       Date_1              Date_2      month_from
   10FEB2010:00:00:00      02/07/08       -24
   10FEB2010:00:00:00      03/10/08       -23  
   10FEB2010:00:00:00      04/07/08       -22
   24MAY2010:00:00:00      05/09/08       -24
   24MAY2010:00:00:00      06/11/08       -23
   24MAY2010:00:00:00      07/11/08       -22

私の最初の試みは:

 month_from=intck('month.1','Date_1'd,'Date_2'd);

正しい機能を使用していますか?

変数「month_from」をサンプルデータセットに追加するのはどうですか?

4

1 に答える 1

2

これはあなたが探していることをしているようです...date_1とdate_2を文字からnumeric(dates)に変換する必要があるかどうかわかりませんでした。そのため、そのコードも含めました。

(また、正しい結果を出すためにINTCK日付変数が月の1日にある必要があるかどうかをテストする必要はありませんでした)

data have;
 length date_1 $18 date_2 $8;
 infile datalines delimiter=','; 
 input date_1 $ date_2 $;

 datalines;
10FEB2010:00:00:00,02/07/08
10FEB2010:00:00:00,03/10/08
10FEB2010:00:00:00,04/07/08
24MAY2010:00:00:00,05/09/08
24MAY2010:00:00:00,06/11/08
24MAY2010:00:00:00,07/11/08
;

data want (drop=date_1 date_2 dt);
 set have;
 dt=input(date_1,datetime.);
 date1=datepart(dt);
 date2=input(date_2,mmddyy10.);

 month_from=intck('month',intnx('month',date1,0,'b'),intnx('month',date2,0,'b'));
 format date1 date2 mmddyy10.;
run;
于 2012-07-16T19:37:09.943 に答える