dataset - SAS, generate (repeat) sequency number, elegant way -


i want generate dataset below. instead of write out 1-84, there better of doing this? thanks.

data test; input index @@; datalines; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 ; run; 

also, have macro variable below. better way write it?

%let term= 24 24 24 24 24 24 24 24 24 24 24 24 36 36 36 36 36 36 36 36 36 36 36 36 48 48 48 48 48 48 48 48 48 48 48 48 60 60 60 60 60 60 60 60 60 60 60 60 66 66 66 66 66 66 66 66 66 66 66 66 72 72 72 72 72 72 72 72 72 72 72 72 84 84 84 84 84 84 84 84 84 84 84; 

data test;      index= 1 84;         output;     end; run;  data test2;  array num [7] (24 36 48 60 66 72 84);     = 1 dim(num);         j = 1 12 ;             index = num[i];             output;         end;     end; run;     proc sql noprint;     select index :term separated " " test2;     quit;     %put &term.; 

or alternatively without using dataset:

data _null_;  length term $3000; array num [7] (24 36 48 60 66 72 84);     = 1 dim(num);         j = 1 12 ;             term = catx(" ",term,num[i]);         end;     end; call symput('term',term); run; %put &term.; 

if incrementing in steps can use by in loop e.g.

data _null_;  length term $3000;     index= 24 12 84;         = 1 12 ;             term = catx(" ",term,index);         end;     end; call symput('term',term); run; %put &term.; 

Comments