私はIDを持つデータセットを持っており、各IDは、複数の日付(実際には日時を)持っています。 PROC SQLを使用して最小日時を取得し、最低1年間を追加したいと考えています。私は1つのPROC SQLでこれをすべて実行しようとしていますが、不器用になっており、これを動作させることができません。以下は2つの試みです。アドバイスをいただければ幸いです。SAS PROC SQLは - 分の日付を取得し、追加1年
*** GENERATE RANDOM DATES AFTER JAN 1, 2012 AND CREATE DATE/TIME VARIABLE ***;
data have ;
format date mmddyy10. dt datetime15.;
do person_id=100, 200, 300, 400, 500;
do i = 1 to 100;
jdate = int(1000 * ranuni(123987));
date = mdy(1,1,2012) + jdate;
dt = dhms(date, 0,0,0);
output;
end;
end;
run;
*** TRY1: THIS DOES NOT WORK - GETS MIN DATE/TIME AND REMERGES WITH EVERY RECORD***;
proc sql;
create table try1 as
select min(dt) as index_dt format=datetime15. ,
(dt + 365*24*60*60) as followup_date format=datetime15.
from have
;
quit;
*** TRY2: USE MIN() IN "HAVING" STATEMENT ***;
*** PROBLEMATIC IF PERSON_ID HAS MIN(DT) OCCUR MULTIPLE TIMES ***;
proc sql;
create table try2 as
select person_id,
dt as index_dt format=datetime15.,
(dt + 365*24*60*60) as followup_date format=datetime15.
from have
group by person_id
having dt=min(dt)
;
quit;
ありがとう:
また、あなたの代わりにあなたの乗算の上で年間追加するには、次の操作を実行することもできます!もう1年INTNXコードで年間を追加していただきありがとうございます。 – SunnyRJ