/* Example data */ proc plan seed=0; factors x=10e6 /noprint; output out=IDs; run;quit; data have(drop=MyVar); array first_names{20} $20 _temporary_ ("Paul", "Allan", "Thomas", "Michael", "Chris", "David", "John", "Jerry", "James", "Robert", "William", "Richard", "Bob", "Daniel", "Paul", "George", "Larry", "Eric", "Charles", "Stephen"); array last_names{20}$20 _temporary_ ("Smith", "Johnson", "Williams", "Jones", "Brown", "Miller", "Wilson", "Moore", "Taylor", "Hall", "Anderson", "Jackson", "White", "Harris", "Martin", "Thompson", "Robinson", "Lewis", "Walker", "Allen"); call streaminit(123); do MyVar=1 to 10e5; first_name=first_names[ceil(rand("Uniform")*20)]; last_name=last_names[ceil(rand("Uniform")*20)]; output; end; run; data employees(drop=x); length empid $7; set IDs; set have; empid=put(x, z7.); run; proc surveyselect data=employees out=temp(keep=empid) seed=123 noprint method=srs sampsize=100000; run; data emphours; set temp; hours=round(rand('Uniform', 10, 100), 0.01); run; proc datasets lib=work nolist; delete temp Ids Have; run;quit;