DATA Step, Macro, Functions and more

How to generate random dates in sas over a certain period time. Quite urgent

Reply
Frequent Contributor
Posts: 96

How to generate random dates in sas over a certain period time. Quite urgent

Hi all,

 

I have a table that contains customer_id (around 1 Millions) and would like to create some random dates for these customers between 01/01/2015 and 01/01/2017 .

 

Please your help would be much appreciated as it is quite urgent.

 

Thank You very much

Super User
Posts: 6,928

Re: How to generate random dates in sas over a certain period time. Quite urgent

[ Edited ]
%let start=01/01/2015;
%let end=01/01/2017;

data _null_;
start = input("&start",ddmmyy10.);
end = input("&end",ddmmyy10.);
interval = end - start;
call symput('start',put(start,best.));
call symput('interval',put(interval,best.));
run;

data want;
set have;
format newdate ddmmyy10.;
newdate = &start + rand() * &interval;
run;

 

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Super User
Super User
Posts: 7,392

Re: How to generate random dates in sas over a certain period time. Quite urgent

Post test data in the for of a datastep!!  Also post what you want out.

 

Here is an example, the diff between the two dates * by random number added to the base date, gives a date between the two values:

data tmp;
  call streaminit(123);      
  a="01JAN2015"d;
  b="01JAN2017"d;
  test="01JAN2015"d + floor((b-a) * rand("uniform"));
  format a b test date9.;
run;
Frequent Contributor
Posts: 96

Re: How to generate random dates in sas over a certain period time. Quite urgent

Thank You RW9. It's what I need.

##- Please type your reply above this line. Simple formatting, no
attachments. -##
Ask a Question
Discussion stats
  • 3 replies
  • 139 views
  • 0 likes
  • 3 in conversation