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
Post a Comment